2012-01-27 11 views

Odpowiedz

1

Nie możesz. swiftmailer/php faktycznie nie dostarczają poczty, po prostu przekazują ją serwerowi SMTP, a serwer wykonuje dostawę za Ciebie. Musisz powiedzieć serwerowi SMTP, aby nie przetwarzał kolejki wychodzącej w celu zatrzymania dostarczania.

W kategoriach realworld, swift/php po prostu przejdź do rogu i upuść swoją kopertę w skrzynce pocztowej. Ciężarówka pocztowa pojawia się natychmiast potem i rozpoczyna proces wysyłania poczty w drodze przez system pocztowy. Ale to całkowicie poza zasięgiem PHP.

+1

Co zrobić, jeśli używam sendmaila jako transportu? (Swift_SendmailTransport) – crickeys

+0

sendmail jest jednym z wielu serwerów SMTP. –

5

To stara sprawa, ale ponieważ pojawił się w moim wyszukiwania google, ja nie odpowiedzieć, co zorientowali się.

TAK! Swiftmailer ma możliwość zapisu na bufor zamiast natychmiastowego wysłania. Implementacja jest dość prosta:

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

To mówi swiftmailer, aby napisał wiadomości na dysku, a następnie je wysłać. Następnie za pomocą zadania cron lub innego wyzwalacza wyślij wiadomości używając czegoś takiego:

$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); 
Powiązane problemy