2012-01-27 10 views

答えて

1

できません。 swiftmailer/phpはあなたのために実際にメールを配信しません。ただSMTPサーバに渡して、そのサーバがあなたに配信します。送信キューを処理しないようにSMTPに指示する必要があります。

realworldの言葉で言えば、swift/phpはコーナーまで歩いて、メールボックスに封筒を落とすだけです。郵便トラックはすぐ後に現れ、郵便システムの途中で郵便を送るプロセスを開始する。しかし、それはPHPの範囲外です。

+1

私はトランスポートとしてsendmailを使用していますか? (Swift_SendmailTransport) – crickeys

+0

sendmailは多くのSMTPサーバーの1つです。 –

0

sendmailトランスポートを使用している場合、すぐに戻る必要があります。 https://github.com/swiftmailer/swiftmailer/blob/4.1/doc/sending.rstから

それはそれらを送信する前に、ディスクにあなたの メッセージをスプールとして通常のsendmailプロセスが迅速に対応します。

また、スプーリングを見てすることができます:http://symfony.com/doc/current/cookbook/email/spool.html

5

は、これは古い質問ですが、それは私のGoogle検索で来ているので、私は考え出したものと、それにお答えします。

はい! Swiftmailerにはすぐに送信するのではなく、スプールに書き込む機能があります。

$spool = new Swift_FileSpool('/where/you/want/your/spool'); 
$transport = Swift_SpoolTransport::newInstance($spool); 
$mailer = Swift_Mailer::newInstance($transport); 

これは、メッセージをディスクに書き込むのではなく、ディスクに書き込むように指示します。次に、cronジョブや他のトリガーを使用してメッセージを送信します。

$spool = new Swift_FileSpool('/where/you/put/your/spool'); 
$spool_transport = Swift_SpoolTransport::newInstance($spool); 

// Create the smtp transport. 

$smtp_transport = Swift_SmtpTransport::newInstance('your.smtp.host', 25); 

// Get the messages from the spool 
$spool = $spool_transport->getSpool(); 

// Send the messages via the real transport. 
$sent = $spool->flushQueue($smtp_transport); 
関連する問題