Code:
#!/usr/bin/perl --
print "Content-type: text/html\n\n";
use DBI;
#use DBD::Pg;
#use Mail::Mailer;
use Net::SMTP;
#use Socket;
require "cgi-lib.pl";
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
open HTMLFILE,
"link.html";
read HTMLFILE, $html,16384;
close HTMLFILE;
# open ALTFILE,
#"subscribers.txt";
# read ALTFILE, $alt,16384;
# close ALTFILE;
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
open(FILE,"sub.txt");
while(<FILE>)
{
$smtp = Net::SMTP->new('mail.daniflowers.com');
$smtp = Net::SMTP->new('mail.daniflowers.com',
Hello => 'mail.daniflowers.com',
Timeout => 30,
Debug => 1,
);
$subject = "DaniFlowers - Isporuka cveca";
$from = "office\@daniflowers.com";
$address = $_;
$smtp->mail($from);
$smtp->to($address);
$smtp->data();
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
localtime(time);
@days = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
@months =
("Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
$day = $days[$wday];
$month = $months[$mon];
$dateString = sprintf("$day, $mday $month $year
%0.2d:%0.2d:%0.2d -0600",$hour,$min,$sec);
$msg = "";
$msg = $msg . "To: $address\n";
$msg = $msg . "From: $from\n";
$msg = $msg . "Reply-To: $from <$from>\n";
$msg = $msg . "Subject: $subject\n";
$msg = $msg . "Date: $dateString \n";
$uid = time;
$partID = "----=_NextPart_" . $uid;
$msg = $msg . "MIME-Version: 1.0\n";
$msg = $msg . "Content-Type: multipart/alternative;\n";
$msg = $msg . " boundary=\"$partID\"\n";
$msg = $msg . "\n";
$msg = $msg . "This is a multi-part message in MIME
format.\n\n";
$msg = $msg . "\n";
$msg = $msg . "--" . $partID;
$msg = $msg . "\n";
$msg = $msg . "Content-Type: text/plain;\n\n";
$msg = $msg . $alt;
$msg = $msg . $textCancelMSG;
$msg = $msg . "\n\n";
$msg = $msg . "--" . $partID;
$msg = $msg . "\n";
$msg = $msg . "Content-Type: text/html;\n\n";
$msg = $msg . $html;
$msg = $msg . "\n\n";
$msg =~ s/\x0d//g;
$msg =~ s/\x0a/\x0d\x0a/g;
$smtp->datasend($msg);
$smtp->dataend();
$smtp->quit;
}
######### KRAJ KODA #############
#!/usr/bin/perl --
print "Content-type: text/html\n\n";
use DBI;
#use DBD::Pg;
#use Mail::Mailer;
use Net::SMTP;
#use Socket;
require "cgi-lib.pl";
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
open HTMLFILE,
"link.html";
read HTMLFILE, $html,16384;
close HTMLFILE;
# open ALTFILE,
#"subscribers.txt";
# read ALTFILE, $alt,16384;
# close ALTFILE;
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
######### UCITAJ FAJLOVE ###############
open(FILE,"sub.txt");
while(<FILE>)
{
$smtp = Net::SMTP->new('mail.daniflowers.com');
$smtp = Net::SMTP->new('mail.daniflowers.com',
Hello => 'mail.daniflowers.com',
Timeout => 30,
Debug => 1,
);
$subject = "DaniFlowers - Isporuka cveca";
$from = "office\@daniflowers.com";
$address = $_;
$smtp->mail($from);
$smtp->to($address);
$smtp->data();
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) =
localtime(time);
@days = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
@months =
("Jan","Feb","Mar","Apr","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$year += 1900;
$day = $days[$wday];
$month = $months[$mon];
$dateString = sprintf("$day, $mday $month $year
%0.2d:%0.2d:%0.2d -0600",$hour,$min,$sec);
$msg = "";
$msg = $msg . "To: $address\n";
$msg = $msg . "From: $from\n";
$msg = $msg . "Reply-To: $from <$from>\n";
$msg = $msg . "Subject: $subject\n";
$msg = $msg . "Date: $dateString \n";
$uid = time;
$partID = "----=_NextPart_" . $uid;
$msg = $msg . "MIME-Version: 1.0\n";
$msg = $msg . "Content-Type: multipart/alternative;\n";
$msg = $msg . " boundary=\"$partID\"\n";
$msg = $msg . "\n";
$msg = $msg . "This is a multi-part message in MIME
format.\n\n";
$msg = $msg . "\n";
$msg = $msg . "--" . $partID;
$msg = $msg . "\n";
$msg = $msg . "Content-Type: text/plain;\n\n";
$msg = $msg . $alt;
$msg = $msg . $textCancelMSG;
$msg = $msg . "\n\n";
$msg = $msg . "--" . $partID;
$msg = $msg . "\n";
$msg = $msg . "Content-Type: text/html;\n\n";
$msg = $msg . $html;
$msg = $msg . "\n\n";
$msg =~ s/\x0d//g;
$msg =~ s/\x0a/\x0d\x0a/g;
$smtp->datasend($msg);
$smtp->dataend();
$smtp->quit;
}
######### KRAJ KODA #############
SUBSCRIBERS file izleda ovako
Kada skriptu pokrenem, desava se sledece:
Mail se posalje svima sa lise, ali samo [email protected] (zadnji entry u sub.txt fajlu) dobije HTML mail, ostali dobiju poruku u plain text formatu koja sadrzi komletan $msg string, kako da napravim da svi korisnici dobiju HTML poruku a ne plaintext... probavao sam da resetujem sve parametre na kraju, da stavljam while petlju unutar konekcjie na SMTP server, da ucitavam iz array-a umesto iz fajla... I uvek je rezultat isti.. samo zadnji korisnik bilo u fajlu, bilo u array-u dobije HTML mail, a svi ostali nerazumljivi plaintext.