Die Swiftmailer-Ausnahme wird im Symfony2-Controller nicht abgefangen

8

Ich entwickle eine einfache Mailing-Anwendung mit Google Mail-Konto als Host. Es funktioniert wie ein Charme, aber das Problem steigt, wenn send () -Funktion eine Ausnahme auslöst. Ich sehe, dass try catch-Anweisung die Ausnahme nicht behandeln kann. Es funktioniert nicht, selbst wenn ich die globale Ausnahmeklasse verwende. Diese Frage wird auch irgendwo diskutiert.

zum Beispiel:

Fangen Sie die swiftmailer-Ausnahme in Symfony2 dev env controller

oder

Ссылка

Aber sie haben keine funktionierende Antwort gefunden.

Mein Controller-Funktionscode lautet:

%Vor%

Die Antwort, die von dem obigen Code gesendet wurde, den ich in der Firebug-Konsole erhalte, ist:

%Vor%

und ich fange meine Haare, weil ich nicht weiß, warum der Kernel die Ausnahme in der Fortsetzung meines JSON-Objekts behandelt?

wenn ich diese Zeile kommentiere:

%Vor%

die Ausnahme tritt nicht auf und ich habe einen gültigen json auf der Clientseite (das ist natürlich selbstverständlich) Ich habe Exception in \Exception oder \Swift_TransportException oder sogar Swift_TransportException geändert! aber kein gutes Ergebnis.

    
CoderInNetwork 13.08.2013, 17:37
quelle

2 Antworten

3

Wenn Sie $this->container->get("mailer")->send($message); ausführen, wird die E-Mail-Nachricht zu diesem Zeitpunkt nicht gesendet, wenn Spooling aktiviert ist. Siehe Ссылка

Wenn Sie die Standardeinstellung spool: { type: memory } haben, wird die \Swift_TransportException während der Kernel-Beendigungsphase ausgelöst, nachdem Ihr Controller beendet wurde. Eine Möglichkeit ist es, das Spooling zu deaktivieren (aber dann müssen Ihre Benutzer möglicherweise warten, bis die E-Mail gesendet wird), oder Sie können Ihren eigenen Eventlistener erstellen, um die Ausnahme zu behandeln. Ссылка

    
Terje Bråten 11.10.2014 21:55
quelle
1

Sie müssen den Ereignis-Dispatcher schlagen, bevor er eine Ausnahme zurücksendet, also hören Sie sich diese Art von Ereignissen an und lassen Sie sie zum Schweigen bringen, obwohl ich denke, dass dies ein SCHLECHTER Weg ist, damit umzugehen

%Vor%

im Controller

%Vor%     
ROLO 08.10.2013 15:00
quelle

Tags und Links