Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sending email using php, gmail, and swiftmailer causes SSL-related error

Here is my PHP code:

function SendCookieToTheMail()
{
    require_once 'swift-mailer/lib/swift_required.php';
    //Create the Transport
    $transport = Swift_SmtpTransport::newInstance('smtp.gmail.com')
      ->setPort(465)
      ->setEncryption('ssl')
      ->setUsername('[email protected]')
      ->setPassword('123')
      ;

    //Create the Mailer using your created Transport
    $mailer = Swift_Mailer::newInstance($transport);

    //Create a message
    $message = Swift_Message::newInstance('Test')
      ->setFrom(array('[email protected]' => 'From mr. 007'))
      ->setTo(array('[email protected]', '[email protected]' => 'To mr. 007'))
      ->setBody('Body')
      ;

    //Send the message
    $result = $mailer->send($message);

    /*
    You can alternatively use batchSend() to send the message

    $result = $mailer->batchSend($message);
    */ 
}

Here is the error:

( ! ) Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 233

( ! ) Fatal error: Uncaught exception 'Swift_TransportException' with message '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? #44551400]' in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

( ! ) 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? #44551400] in C:\Program Files\wamp\www\swift-mailer\lib\classes\Swift\Transport\StreamBuffer.php on line 235

Where is the problem??

Update:

I checked phpinfo() and it says:

OpenSSL support     disabled (install ext/openssl) 

I referred to the links below, but I couldn't install ssl...

like image 527
LostLord Avatar asked Jan 31 '11 00:01

LostLord


5 Answers

You should enable php_openssl module from php extensions. Just edit your php.ini file

extension=php_openssl.dll
like image 160
bekco Avatar answered Nov 05 '22 21:11

bekco


i Was searching for a similar question and i found that you have to edit the php.ini file edit the following line

;extension=php_openssl.dll

remove the semi colon and it will work fine

Hope that help any one else :)

like image 20
osos Avatar answered Nov 05 '22 20:11

osos


Did your php support SSL ? http://php.net/manual/en/function.fsockopen.php, and check http://www.php.net/manual/en/openssl.installation.php for reference.

Create a page with

phpinfo();

Is SSL enabled?

like image 20
keatch Avatar answered Nov 05 '22 21:11

keatch


gmail need this in your config.yml

swiftmailer: encryption: tls

or replace your: ->setEncryption('ssl') by ->setEncryption('tls')

and not ssl

like image 30
alainivars Avatar answered Nov 05 '22 20:11

alainivars


in fact, I advice to use tls on port 25 test using the following syntax:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25, 'tls')
    ->setUsername('[email protected]')
    ->setPassword('123');
like image 1
Mimouni Avatar answered Nov 05 '22 19:11

Mimouni