1

これについていくつかの質問があることは知っていますが、私の問題は、私が見つけたもののどれによっても解決されません。

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の両方のラッパーを持っています...

4

2 に答える 2

2

これを使用できると思います:

$transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, "ssl") 
     ->setUsername('test@gmail.com') 
     ->setPassword('test'); 

--> gmail の代わりに googlemail で smtp..

于 2012-09-17T12:17:42.740 に答える