Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Swiftmailer Gmail Connection timed out #110

I want to send emails using gmail's smtp with the PHP script posted below using Swiftmailer. Now this works fine on my own webserver. But when I used it on the webserver of the people I'm creating this for, I get an exception:

    Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host smtp.gmail.com [Connection timed out #110]' in ...

What could be the problem? I'm assuming its got to do with the difference in server settings, because the code works on my own webserver. I've checked with phpinfo() the following:

- Registered Stream Socket Transports   tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
- OpenSSL support   enabled 
- OpenSSL Library Version   OpenSSL 1.0.1e-fips 11 Feb 2013 

This is my PHP code:

    $emailname = MY_GMAIL_ACCOUNT_USERNAME;
    $emailpass = MY_GMAIL_ACCOUNT_PASSWORD;

    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
      ->setUsername($emailname)
      ->setPassword($emailpass);

    $mailer = Swift_Mailer::newInstance($transport);

    $message = Swift_Message::newInstance($emailtitle)
      ->setFrom(array($emailname.'@gmail.com' => $emailsender))
      ->setTo(array($emailrecp))
      ->setBody($emailbody,'text/html');

    $result = $mailer->send($message);
like image 885
appel Avatar asked Dec 11 '22 03:12

appel


1 Answers

I had the same issue on a Digital Ocean server. Turns out they're blocking SMTP by default on IPv6. Here's the fix:

nano /etc/gai.conf precedence ::ffff:0:0/96 100

as per: https://www.digitalocean.com/community/questions/outgoing-connections-on-port-25-587-143-blocked-over-ipv6

like image 110
Kjetil Larsen Avatar answered Dec 26 '22 15:12

Kjetil Larsen