2013-09-23 18 views
5

Ich versuche gerade, Symfony2/Swiftmailer den Inhalt eines übermittelten Formulars per E-Mail zu senden. Mein parameters.yml enthält folgende Komponenten:Konfigurieren Sie Symfony2/Swiftmailer, um "sendmail -t" zu verwenden

mailer_transport: sendmail 
mailer_host: ~ 
mailer_user: ~ 
mailer_password: ~ 

Da die Sendmail-Version auf meinem Server nicht die -bs Option nicht unterstützt, die Swiftmailer standardmäßig zu verwenden scheint, ich habe einen Weg finden Symfony2/Swiftmailer zu sagen, zu verwenden, sendmail -t stattdessen. Swift_Transport_SendmailTransport scheint das zu unterstützen, aber es scheint keine entsprechende Konfigurationsoption für SwiftmailerBundle zu geben.

Wie kann ich Swiftmailer mitteilen, sendmail -t zu verwenden (vorzugsweise über Konfiguration)?

Edit 2: Vorerst bin ich mit

$message = \Swift_Message::newInstance() 
      […]; 

$transport = $this->get('swiftmailer.mailer.default.transport.real'); 
if ($transport instanceof \Swift_Transport_SendmailTransport) { 
    $transport->setCommand('/usr/sbin/sendmail -t'); 
} 

$this->get('mailer')->send($message); 

Ich frage mich immer noch, ob es einen besseren Weg, dies zu tun, aber.

Antwort

6

Diese Konfiguration funktionieren sollte.

mailer_transport: sendmail 
mailer_host: /usr/bin/sendmail # wherever your mail is 
#mailer_user: ~ 
#mailer_password: ~ 

Wenn es ein Problem ist noch,

A. check who are sending mail to [email protected] 
    1. console - check your permission to access sendmail 
    2. web - check web user like wwww-data can access sendmail 
B. check your mail log /var/log/maillog 
    When Symfony Swiftmailer send, 
    1. mail log has not been processed, then PHP side problem. 
    2. else if: send to outlook 
     it is TLS handshake problem, it might be from outlook tls handshake. 
     FYI, sendmail TLS is not working with outlook well. 

     add next line to /etc/mail/access 
     Try_TLS:wxy.com    NO 
    3. else: 
     Sorry, google with mail log error messages again . 
5

Wir haben gerade den Tag in dieser Frage.

Ich ziehe es für diese Art der Sache gerade Konfiguration verwendet wird, und ich fand dies funktioniert:

# app/config/services.yml 
services: 
    swiftmailer.mailer.default.transport: 
    class:  Swift_SendmailTransport 
    arguments: ['/usr/sbin/sendmail -t'] 
Verwandte Themen