私は最近Swiftmailerライブラリを実装しましたが、初めて使用したとき、約 300 人にメールを送信するだけでよいにもかかわらず、php タイムアウト エラーが発生しました..set_time_limit(0);
サーバーの制限に)
私の使い方はこんな感じです。
$transport = Swift_SmtpTransport::newInstance('smtp.mydomain.com',25);
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance();
$message->setSubject($_POST['subj']);
$message->setFrom(array('email' => 'Mysite'));
$message->setTo($recipients);
$message->setBody(strip_tags($messagebody));
$message->addPart($messagebody, 'text/html');
$numSent = $mailer->batchSend($message);
printf("Sent %d messages\n", $numSent);
ここ$recipients
で、電子メールのカンマ区切りの配列です ( explode()
mySQL クエリから作成されます)。
上記のコードのどの部分が script-timeout を生成するのかわかりません。ニュースレター機能に使用しているため、テストまたはデバッグするのはかなり難しいので、思いついた人には本当に感謝しています。この問題に対する(ほぼ)防弾の解決策:)
前もって感謝します !
ラース