0
我已經使用Swiftmailer(使用它發送簡報)編寫了以下批量電子郵件發送腳本。通常情況下,一切正常,只有幾個用戶,他們有問題的電子郵件服務器,不斷拒絕電子郵件(例如,由於收件箱已滿,未驗證反向DNS條目,...)。問題在於Swiftmailer無限次重試發送這些郵件(直到服務器重新啓動)。限制電子郵件在swiftmailer發送重試
有沒有限制重試次數的方法?
我讀過Swift_FileSpool
類,它有setRetryLimit
函數,默認值是10
重試。但我不知道如何使用它。此外,似乎默認的重試限制不適用於某些原因。
<?php
$emails=get_to_emails();//list of emails
require_once(SWIFTMAILER_KELIAS."swift_required.php");
$swMailer=Swift_Mailer::newInstance(Swift_MailTransport::newInstance());
$swMailer->registerPlugin(new Swift_Plugins_ThrottlerPlugin(10,Swift_Plugins_ThrottlerPlugin::MESSAGES_PER_MINUTE));
$message=Swift_Message::newInstance();
$message->setContentType('text/html');
$message->setCharset('UTF-8');
$message->setSender(array(ADMIN=>ADMIN_NAME));
$message->setFrom(array(ADMIN=>ADMIN_NAME));
$message->setSubject("subject");
$message->setBody($text,'text/html');
$message->addPart(strip_tags(str_replace(array("</h1>","</p>","</br>","<br>","<br/>"),array("</h1>\r\n","</p>\r\n","<br/>\r\n","<br/>\r\n","<br/>\r\n"),$text)),'text/plain');
foreach($emails as $email) {
$message->setTo($email);
$swMailer->send($message);
}
?>