Sending email using php, gmail, and swiftmailer ca

2020-08-22 09:07发布

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('007@gmail.com')
      ->setPassword('123')
      ;

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

    //Create a message
    $message = Swift_Message::newInstance('Test')
      ->setFrom(array('007@gmail.com' => 'From mr. 007'))
      ->setTo(array('007@gmail.com', '007@gmail.com' => '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...

7条回答
仙女界的扛把子
2楼-- · 2020-08-22 09:43

You need to configure php to work with ssl

http://www.php.net/manual/en/openssl.installation.php

查看更多
神经病院院长
3楼-- · 2020-08-22 09:45

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('007@gmail.com')
    ->setPassword('123');
查看更多
Emotional °昔
4楼-- · 2020-08-22 09:46

gmail need this in your config.yml

swiftmailer: encryption: tls

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

and not ssl

查看更多
【Aperson】
5楼-- · 2020-08-22 09:51

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?

查看更多
Melony?
6楼-- · 2020-08-22 09:51

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 :)

查看更多
在下西门庆
7楼-- · 2020-08-22 09:52

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

extension=php_openssl.dll
查看更多
登录 后发表回答