Zend Mail Gmail SMTP

Привет, я пытаюсь отправить некоторые письма через gmail из модуля Zend_Mail. Это мой код:

$config = array( 'ssl' => 'tls', 'port' => 587, 'auth' => 'login', 'username' => 'webmaster@mydomain.com', 'password' => 'password' ); $smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 

Ошибка:

Предупреждение: stream_socket_enable_crypto () [streams.crypto]: этот поток не поддерживает SSL / crypto в /library/Zend/Mail/Protocol/Smtp.php в строке 206 Не удается подключиться через TLS

Я попробовал сообщить моему хостинг-провайдеру, чтобы включить openssl.dll в phi.ini

Но они говорят, что это не обязательно, поскольку сервер находится в Linux, и ему не нужно разрешать openssl.dll работать с TLS или SSL.

Является ли мой хостинг-провайдер неправильным, или я делаю что-то неправильно в своем коде.

заранее спасибо

Fabian

openssl.dll – это расширение windows openssl.

В Linux вам нужно скомпилировать PHP с поддержкой OpenSSL. http://www.php.net/manual/en/openssl.installation.php

Для использования TLS вам необходимо использовать OpenSSL для сокетов PHP и потоковых функций. Zend использует эти функции и, следовательно, требует того же.

У меня была аналогичная проблема, вот что сработало; Использование почтового транспорта Zend и yahoo smtp:

 $mailhost= 'smtp.example.com'; $mailconfig = array( 'auth' => 'login', 'username' => 'me@example.com', 'password' => 'topsecret', 'port' => '465', 'ssl' => 'ssl' ); $transport = new Zend_Mail_Smtp($mailhost, $mailconfig); Zend_Mail::setDefaultTransport($transport); 

Это вызвало ошибку: «Permission denied» и никакая почта не была отправлена. После трех недель попыток всех решений я смог найти тот, который работал, менялся: $ transport to; $transport = new Zend_Mail_Transport_Sendmail('-fsupport@website.com',$mailhost, $mailconfig);

работает как ожидается …

Очень удобно использовать метод Zend_Mail :: setDefaultTransport

Попробуйте установить ssl: // в качестве префикса для имени хоста и использовать 465 в качестве порта.