2012-01-27 9 views

उत्तर

1

आप नहीं कर सकते। swiftmailer/php वास्तव में आपके लिए मेल वितरित नहीं करता है, वे इसे केवल SMTP सर्वर पर सौंप देते हैं, और यह सर्वर आपके लिए डिलीवरी करता है। आउटगोइंग कतार को 'स्टॉप' डिलीवरी पर संसाधित न करने के लिए आपको एसएमटीपी को बताना होगा।

रीयलवर्ल्ड शर्तों में, स्विफ्ट/PHP बस कोने पर चलें और मेल बॉक्स में अपना लिफाफा छोड़ दें। डाक ट्रक तत्काल बाद में दिखाई देता है और डाक प्रणाली के माध्यम से मेल भेजने की प्रक्रिया शुरू करता है। लेकिन यह पूरी तरह से PHP के अधिकार से बाहर है।

+1

यदि मैं परिवहन के रूप में प्रेषण का उपयोग कर रहा हूं तो क्या होगा? (Swift_SendmailTransport) – crickeys

+0

sendmail कई SMTP सर्वरों में से एक है। –

0

यदि आप sendmail परिवहन का उपयोग कर रहे हैं तो इसे तुरंत वापस जाना चाहिए।

https://github.com/swiftmailer/swiftmailer/blob/4.1/doc/sending.rst से

:

आमतौर पर sendmail प्रक्रिया जल्दी से जवाब देंगे क्योंकि यह उन्हें भेजने से पहले डिस्क के लिए अपने संदेशों spools।

तुम भी spooling पर एक नजर है कर सकते हैं: http://symfony.com/doc/current/cookbook/email/spool.html

5

यह एक पुरानी सवाल है, लेकिन चूंकि यह मेरे गूगल खोज में आया था, मैं यह है कि मैं क्या पता लगा के साथ जवाब देंगे।

हाँ! स्विफ्टमेलर में तुरंत भेजने की बजाय स्पूल को लिखने की क्षमता है। कार्यान्वयन बहुत आसान है:

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

यह swiftmailer बताता डिस्क को संदेश लिखने के लिए नहीं बल्कि फिर उन्हें भेजें। फिर क्रॉन जॉब या अन्य ट्रिगर का उपयोग करके संदेश भेजना जैसे संदेश:

$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); 
संबंधित मुद्दे