我使用SendGrid SMTP邮件服务从我的PHP网站发送SMTP电子邮件。一切正常,但是当我发送大量(5,000)时,加载/发送需要很长时间,然后尝试一遍又一遍地重启,并且加倍,三倍......我只是错误地发送了30,000封电子邮件!我需要一种方法来查看邮件队列并删除它们,或者在执行此操作时停止该过程。
这是我的代码
require_once "Mail.php";
$from = $thom5;
$to = $allemailsever1.','.$thom5;
$subject = $_POST['subject1'];
$html = "
<html><body>
<p></p>
$thom
</body></html>
";
$host = "smtp.sendgrid.net";
$port = "587";
$username5 = "";
$password5 = "";
$mime = '1.0';
$content = 'text/html';
$charset="ISO-8859-1";
$three = 'Receipients <'.$thom5.'>';
$headers = array ('From' => $from,
'To' => $three,
'Subject' => $subject,
'Mime-version' => $mime,
'Content-Type' => $content,
'charset' => $charset);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'port' => $port,
'auth' => true,
'username' => $username5,
'password' => $password5));
// Send notification //
$mail = $smtp->send($to, $headers, $html);
答案 0 :(得分:2)
听起来您的本地脚本无法管理您要发送的邮件数量。您应该实现本地队列,并且由于您使用的是PHP,因此一个简单的选项是Mail_Queue PEAR package
答案 1 :(得分:1)
使用Events API并检查是否已处理每条消息。 http://docs.sendgrid.com/documentation/api/event-api/