これについていくつかの質問があることは知っていますが、私の問題は、私が見つけたもののどれによっても解決されません。
LAMPで迅速なメーラー4.2.1を使用しています。
私はopenSSLを有効にしています:
そこで、次のコードでSSL接続を試みました。
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername('email@somedomainwithgoogleapps.com')
->setPassword("pwd");
$mailer = Swift_Mailer::newInstance($transporter);
$message = Swift_Message::newInstance($subject)
->setFrom(array($from => 'From name'))
->setTo(array($to=> $name))
->setBody($html_content);
$result = $mailer->send($message);
これにより、次のエラーがスローされます
/Swift/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:171 で、「2 つの可能なオーセンティケーターを使用して、ユーザー名 "email@somedomainwithgoogleapps.com" の SMTP サーバーでの認証に失敗しました」というメッセージを含むキャッチされない例外「Swift_TransportException」:171
次のように tls を使用するようにコードを変更すると:
$transporter = Swift_SmtpTransport::newInstance('smtp.gmail.com', 587, 'tls')...(rest is the same)
同じエラーが発生します。また、tls でポート 465 を使用しようとすると、接続タイムアウトが発生します。
私が実行した場合:
$sock = fsockopen('tls://smtp.gmail.com', 465, $errno, $errstr, 10);
echo 'Socket is: ';
var_dump($sock);
echo 'Errors: ' . $errno . ' ' . $errstr;
私は得る
Socket is: resource(2) of type (stream) Errors: 0
追加情報:
var_dump(stream_get_transports());
戻り値:
配列(8) { [0]=> 文字列(3) "tcp" 1 => 文字列(3) "udp" [2]=> 文字列(4) "unix" [3]=> 文字列(3) "udg " [4]=> 文字列(3) "ssl" [5]=> 文字列(5) "sslv3" [6]=> 文字列(5) "sslv2" [7]=> 文字列(3) "tls" }
だから私はsslとtlsの両方のラッパーを持っています...