Witam
Wiem ze bylo juz sporo na temat seryjnego wysylania maili, w archiwum kopalem mocno i gleboko:). Przerobilem troche skrypt pochodny od tego z phpBB (byl wklejany kiedys tu).
Problemem jest to ze wysyla pieknie pierwszego maila z listy, ale niestety zadnego wiecej. Zrobilem wyrzucanie na ekran calego dialogu z serwem SMTP, stamtad widac, ze po pierwszym QUIT (odpowiedz 221) juz nic serwer nie odpowiada.
Co moze byc przyczyna?
Jesli nie da rady w ten sposob to moze w jakis inny? (probowalem funkcji mail(), oczywiscie napotkalem te powszechne trudnosci zwiazane z duza iloscia maili).
Parametry: plik 1.txt zawiera w kolejnych liniach kolejne maile, plik .php3 dostaje dane(tresc,temat) z formularza html, wysylam to kompa(win89,apache1.3,php4.0.5) w LANie. Admin serwera SMTP mowi ze moja podsiec nie ma zadnych blokad na tym serwerze SMTP.
Mysle ze dosyc wyczerpujace wyjasnienia, ponizej nieposluszny;) skrypt:
[php:1:5059185e43]<?php
function server_parse($socket) {
$server_response=fgets($socket,256);
$res=substr($server_response,0,3);
if($res>=400) die('Problem z wysyłaniem. '.$server_response);
print("$server_response<BR>");
}
$fp=fopen("1.txt","r");
$plik=fread($fp,filesize("1.txt"));
$adresaci=split("n",$plik);
fclose($fp);
$wyslano=0;
$smtp_host = 'mail.ic.net.pl';
$email = 'infopap@infopap.pl';
while($adresat=each($adresaci)) {
$socket=pfsockopen($smtp_host,25); if(!$socket) echo "Nie mogę się połączyć z SMTP";
server_parse($socket);
$adresat[value]=trim($adresat[value]);
fputs($socket, 'HELO '.$smtp_host."rn"); server_parse($socket);
fputs($socket, 'MAIL FROM: <'.$email.">rn"); server_parse($socket);
fputs($socket, 'RCPT TO: <'.$adresat[value].">rn"); server_parse($socket);
fputs($socket, 'DATA'."rn"); server_parse($socket);
$naglowek = "MIME-Version: 1.0rnContent-type: text/html; charset=iso-8859-2rn";
$naglowek .= "Subject: $tematrn";
$naglowek .= "To: $adresat[value] <$adresat[value]>rn";
fputs($socket, "$naglowekrnrn");
fputs($socket, "$trescrn");
fputs($socket, ".rn"); server_parse($socket);
fputs($socket, "QUITrn"); server_parse($socket);
$wyslano++;
fclose($socket);
}
print("Wyslano $wyslano maili");
?>[/php:1:5059185e43]