Отправка электронной почты с использованием php, gmail и swiftmailer вызывает ошибку, связанную с SSL - PullRequest
9 голосов
/ 31 января 2011

Вот мой PHP-код:

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);
    */ 
}

Вот ошибка:

( ! ) 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

В чем проблема ??

Обновление:

Я проверил phpinfo() и там написано:

OpenSSL support     disabled (install ext/openssl) 

Я ссылался на ссылки ниже, но не смог установить ssl ...

Ответы [ 7 ]

16 голосов
/ 17 декабря 2011

Я искал похожий вопрос, и я обнаружил, что вам нужно отредактировать файл php.ini отредактируйте следующую строку

;extension=php_openssl.dll

удалите точку с запятой, и она будет работать нормально

Надеюсь, что поможет кому-то еще:)

3 голосов
/ 31 января 2011

Поддерживает ли ваш php SSL?http://php.net/manual/en/function.fsockopen.php, и проверьте http://www.php.net/manual/en/openssl.installation.php для справки.

Создайте страницу с

phpinfo();

Включен ли SSL?

2 голосов
/ 06 января 2013

Gmail нужно это в вашем config.yml

SwiftMailer: шифрование: tls

или замените ваш: -> setEncryption ( 'SSL') от -> setEncryption ( '') TLS

а не ССЛ

1 голос
/ 22 октября 2013

на самом деле, я советую использовать tls на тесте порта 25, используя следующий синтаксис:

$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 25, 'tls')
    ->setUsername('007@gmail.com')
    ->setPassword('123');
1 голос
/ 05 января 2013

Вы должны включить модуль php_openssl из расширений php.Просто отредактируйте php.ini файл

extension=php_openssl.dll
0 голосов
/ 02 июня 2012

Я надеюсь, что вы решили свою проблему, однако для меня строка:

;extension=php_openssl.dll

не было в моем php.ini (работает XAMPP 1.7.7 на Win7), просто добавьте его в раздел расширений, удалите из него точку с запятой, и она должна работать.

0 голосов
/ 31 января 2011

Вам нужно настроить php для работы с ssl

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

...