SwiftMailer sendet keine Mail, warum?

7

SwiftMail sendet meine E-Mail nicht, während mail() funktioniert. Genau wie hier .

Ich habe den EchoLogger hinzugefügt, aber er druckt nichts.

%Vor%

Die E-Mail wird in $failures zurückgegeben, aber warum?

Aktualisieren

In Swift_Transport_SimpleMailInvoker::mail habe ich die Parameter weggelassen und habe folgendes bekommen:

%Vor%

$to, $subject, $body ist dasselbe wie in mail() . Noch keine Ahnung, was das Problem ist.

Update # 2

Das hat gut für mich funktioniert:

%Vor%

Haftungsausschluss : Dies ist keine Lösung, sondern die Problemumgehung, die ich verwendet habe, weil ich nicht die Zeit hatte, das Framework zu debuggen und eine echte Lösung zu finden. Nutzen Sie die oben genannten Informationen, um sich selbst zu debuggen und Ihre Lösung hier zu veröffentlichen. Ich werde gerne akzeptieren und upvote es.

    
PiTheNumber 16.05.2012, 11:27
quelle

7 Antworten

5

Ich hatte das gleiche Problem.

Laut der Dokumentation swiftmailer.org verwendet Swift_MailTransport :: newInstance () standardmäßig die Parameter -f%s und das ist Warum hast du "[email protected]" , um dieses Leerzeichen zwischen -f %s zu lösen.

Ihr Code kann jetzt so aussehen: $message = Swift_Message::newInstance('-f %s') ;

Ich habe dieses Problem gelöst, indem ich einfach null an __construct () übergeben habe. Also sieht mein Arbeitscode so aus:

$message = Swift_Message::newInstance(null) ;

Ich hoffe, es wird jemandem helfen.

P.S. Ich benutze Postfix um Emails zu versenden.

    
VaL 26.06.2014, 09:51
quelle
7

Ich schlage vor, dass Sie den Debugger verwenden und durch den Code hinter send () gehen.

Wenn Sie keinen Debugger verwenden können, sollten Sie sich die Funktion mail in lib/classes/Swift/Transport/SimpleMailInvoker.php ansehen. Es gibt einen Aufruf der internen Mail-Funktion mit einem Shutdown-Operator ('@'). Vielleicht kann das Entfernen dieses Operators Ihnen eine Fehlermeldung anzeigen. Sie können auch var_dump() verwenden, um die dort übergebenen Parameter auszugeben.

    
Alex 16.05.2012 12:10
quelle
6

Ich konnte es beheben. Ich habe [email protected] in der Kopfzeile verwendet und dieses E-Mail-Konto wurde nicht erstellt. Ich habe [email protected] erstellt und meine E-Mails haben angefangen zu arbeiten. Ich hoffe, das hilft jemandem.

    
KutePHP 31.03.2013 14:50
quelle
2

Sieht so aus, als ob Sie den Standard-Transportmechanismus verwenden, der gemäß seinen Dokumenten verwendet % verwendet. co_de% standardmäßig.

Ernste Nachteile bei der Verwendung dieses Transports sind:

  • Unvorhersehbare Nachrichtenheader
  • Mangelndes Feedback zu Lieferausfällen
  • Fehlende Unterstützung für mehrere Plug-ins, die eine Rückmeldung in Echtzeit benötigen

Quelle

Wenn ich dies debuggen würde, würde ich SwiftMailers Implementierung der Funktion mail() finden und die übergebenen Argumente ausgeben und sie mit Ihrer eigenen Arbeitsversion von mail() vergleichen. Ich habe keine Erfahrung mit SwiftMailer, aber das scheint eine schnelle Option zu sein.

    
Mike B 16.05.2012 12:45
quelle
1

Das Problem ist in Swift_Transport_MailTransport, private $_extraParams = '-f%s' .

Das Flag '-f' (siehe Ihren Code: string(15) "[email protected]" ) schlägt in einigen Situationen fehl. Code Igniter hat den gleichen "Bug".

    
for_creator 18.02.2014 15:06
quelle
0

Ich habe es auf symfony herausgefunden, wenn ich die Funktion zum Beispiel mit "exit ()" verlasse, zum Beispiel wird swiftmailer die Mail nicht senden, aber wenn ich mit

geendet habe

gebe neue Antwort () zurück; es sendet gut. also bin ich mir nicht sicher.

    
Sherif Badawi 15.07.2017 00:04
quelle
-2

Das könnte wirklich alt sein, hatte das gleiche Problem, das ich gelöst habe, wenn ich eine kürzere von E-Mail verwende. scheint die maximale Länge nach dem @ -Zeichen ist 10. das ist, was ich bisher getestet habe.

Beispiel:

%Vor%     
tomexsans 14.05.2014 11:09
quelle

Tags und Links