2012-04-12 297 views
1

我試圖用郵件發送自動郵件()。它發送一些電子郵件,但不是全部,大約50%。 爲了測試我對所有電子郵件都使用相同的電子郵件地址,並且仍然只有一部分得到了發送。用PHP郵件發送電子郵件()

我正在使用localhost XAMPP。

下面的代碼:

if ($_POST['sendEmail'] == "SEND Email") { 

    ob_start(); 

    $buffer = str_repeat(" ", 4096); 
    $buffer. = "\r\n some HTML \r\n"; 

    set_time_limit(0); 
    $noEmails = $last - $first + 1; 
    echo "Emails sent (of $noEmails):"; 
    for ($index = $first; $index <= $last; $index++) { 
     $to = $email["$index"]; 
     $subject = "Hey {$firstName[" 
     $index "]}!"; 
     $message = "$emailMessage"; 
     $headers = 'From: [email protected]'."\r\n".'Reply-To: [email protected]'."\r\n".'X-Mailer: PHP/'.phpversion(); 
     sleep(1); 
     mail($to, $subject, $message, $headers); 
     echo $buffer.$index; 
     ob_flush(); 
     flush(); 
    } 
    ob_end_flush(); 
}​ 

請給你的建議。

+1

使用[phpMailer](http://sourceforge.net/projects/phpmailer/)和SMTP代替。 – Basti 2012-04-12 05:30:31

+1

郵件服務器日誌中顯示了什麼? – ghoti 2012-04-12 05:30:42

+0

檢查您的垃圾郵件文件夾。 – 2012-04-12 05:34:04

回答

1

對於發送大量電子郵件可以設置一個cron作業可以5分鐘或10分鐘,將在同一時間發送電子郵件只將少量之後運行。在表中創建一個引用,以便您可以記錄哪些地址已通過電子郵件發送。整個批量將分爲小塊,因爲它將在後臺運行,它不會對您的SMTP服務器帶來巨大的負載。您應該使用PHP MailerSwiftMailer

您可以在這個問題看看選擇哪個PHP郵件庫是最好的:

PhpMailer vs. Swiftmailer?

希望這有助於。