Pracuję nad prostą aplikacją pocztową z kontem Gmail jako hostem. Działa jak urok, ale problem rośnie, gdy funkcja send() rzuca wyjątek. Widzę, że instrukcja catch catch nie może obsłużyć wyjątku. Nie działa, nawet jeśli używam klasy wyjątków Global. to pytanie omówione gdzieś również.Wyjątek Swiftmailer nie łapie w kontrolerze Symfony2
na przykład:
Catch swiftmailer exception in Symfony2 dev env controller
lub
https://groups.google.com/forum/#!topic/symfony2/SlEzg_PKwJw
ale nie osiągnęła odpowiedzi roboczą.
Mój kod funkcji kontroler jest:
public function ajaxRegisterPublisherAction()
{
//some irrelevant logic
$returns= json_encode(array("username"=>$username,"responseCode"=>$responseCode));
try{
$message = \Swift_Message::newInstance()
->setSubject('hello world')
->setFrom('[email protected]')
->setTo('[email protected]')
->setBody(
$this->renderView('AcmeSinamelkBundle:Default:email.txt.twig',array('name'=>$username,"password"=>$password))
);
$this->container->get("mailer")->send($message);
}
catch (Exception $e)
{
}
return new \Symfony\Component\HttpFoundation\Response($returns,200,array('Content-Type'=>'application/json'));
}
Odpowiedź który wysłał z góry kodu, który otrzyma w konsoli Firebug:
{"username":"xzdvxvvcvxcv","responseCode":200}<!DOCTYPE html>
<html>
.
.
Swift_TransportException: Connection could not be established with host smtp.gmail.com [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?]
.
.
</html>
i złapię moje włosy, bo nie wiem dlaczego jądro obsługuje wyjątek w dalszym ciągu mojego obiektu JSON?
kiedy skomentować tę linię.
$this->container->get("mailer")->send($message);
wyjątek nie występuje i mam ważny json w stronie klienta (czyli sprawa-of-chociaż oczywiście) Zmieniłem Exception
do \Exception
lub \Swift_TransportException
lub nawet Swift_TransportException
! ale nie ma dobrego wyniku.
Czy próbowałeś 'Swift_SwiftException'? W pliku znajduje się "Klasa wyjątków bazowych". – ferdynator
Mam na myśli "wyjątek" według "klasy wyjątków Base" – CoderInNetwork
Testowałem teraz z "Swift_SwiftException" i "\ Swift_SwiftException". Czy to nie działa – CoderInNetwork