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.
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. Ссылка
Tags und Links php symfony swiftmailer