[ ventura @ 22.02.2004. 16:10 ] @
Napravo sam kod koji ce putem Net:SMTP-a da posalje HTML poruku na sve adrese iz subscribers file-a (sub.txt) 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 ############# 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. |