我意識到,batchEmail不再是新的SwiftMailer的一部分。所以我做了這個腳本:SwiftMailer批量電子郵件時間我的服務器出
<?
//
// GC PRESS EMAILER v5
//
ini_set('display_errors',1);
error_reporting(E_ALL);
require_once("config.php");
include_once("hawkmail/mail/lib/swift_required.php");
$c=mysql_connect($dbh,$dbu,$dbp);
function SendEmail(){
// DB
$s=mysql_query("SELECT * FROM `newgc`.`press_list`");
// Process Color Listing Loop
while($r=mysql_fetch_array($s)){
// ###########################
// START LOOP
// ###########################
$name=$r['name'];
$email=$r['email'];
$to=array(''.$email.''=>''.$name.'');
include("hawkmail/templates/press.php");
# Email subject
$str=$name;
$str=substr($str, 0, strrpos($str, ' '));
$subject='Dear '.$str.', you are invited to our Exclusive Party Collection Press Day!';
# send message
include("hawkmail/settings.php");
}
// ###########################
// END LOOP
// ###########################
}
SendEmail();
?>
數據庫有200條記錄。我跑了劇本,並將其發送幾封電子郵件,然後超時
504網關超時
的name
和email
記錄就像
約翰·史密斯 JOHN.SMITH @ site.com
很簡單。而我hawkmail/settings.php
是這樣的:
# mail
$smpturl="smtp.sendgrid.net";
$mailu="sitesitesite";
$mailp="sitessssssssssss";
$from=array("[email protected]"=>"site.com");
# login credentials & setup Swift mailer parameters
$transport=Swift_SmtpTransport::newInstance($smpturl, 587);
$transport->setUsername($mailu);
$transport->setPassword($mailp);
$swift=Swift_Mailer::newInstance($transport);
# create a message (subject)
$message=new Swift_Message($subject);
# attach the body of the email
$message->setFrom($from);
$message->setBody($html, 'text/html');
$message->setTo($to);
$message->addPart($text, 'text/plain');
# actually send the message
if($recipients=$swift->send($message, $failures)){}else{}
反正是有增加的PHP超時限制(我使用Ubuntu和Nginx的),或者是有沒有BatchMail替代()真不明白爲什麼它已被刪除。
有人可以使用新的swiftmailer發佈批處理郵件腳本的例子嗎?
你的循環應該工作我認爲。如果雲盒子快速執行腳本,增加服務器內存如何?如果通過瀏覽器運行也許做後臺任務? (我不知道如何處理nginx或ubuntu,如果沒有得到cPanel) – AlphaApp
PHP有超時限制,你需要一個cron作業我認爲 – M1th