我意识到batchEmail不再是新
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,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 Gateway Time-out
约翰·史密斯
John.smith@site.com
很朴实.我的hawkmail / settings.PHP是这样的:
# mail $smpturl="smtp.sendgrid.net"; $mailu="sitesitesite"; $mailp="sitessssssssssss"; $from=array("no-reply@site.com"=>"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发布批量邮件脚本的示例吗?