2009-07-07 21 views
6

こんにちは、私はZend_MailモジュールからGmailを介していくつかの電子メールを送信しようとしています。 これは私のコードです:Zend Mail Gmail SMTP

$config = array(
    'ssl' => 'tls', 
    'port' => 587, 
    'auth' => 'login', 
    'username' => '[email protected]', 
    'password' => 'password' 
); 
$smtpConnection = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config); 

エラー:

警告:stream_socket_enable_crypto()[streams.crypto]:このストリームは/ライブラリ/ Zendの/メール/プロトコル/ SMTPでSSL /暗号化をサポートしていません。ライン206私はphi.ini

でopenssl.dllを有効にするために、私のホスティングプロバイダを語ってみましたTLS経由

を接続することができません に.PHPしかし、彼らはそれがnではないと言いますecessaryはサーバーがLinuxにあり、openssl.dllがTLSまたはSSLで動作するようにする必要はありません。

私のホスティングプロバイダは間違っていますか、私は自分のコードで何か間違っています。ホスト名のプレフィックスとして//およびポートとして465を使用します。事前に

おかげ

ファビアン

答えて

0

は、SSLを設定してみてください。

+0

それでも同じエラーを取得。私は ですsmtp.server \t = ssl://smtp.gmail.com とポート465 –

12

openssl.dllはwindows openssl拡張です。

Linuxでは、OpenSSLをサポートするPHPをコンパイルする必要があります。 http://www.php.net/manual/en/openssl.installation.php

TLSを使用するにはOpenSSL for PHPソケットとストリーム関数が必要です。 Zendはこれらの関数を使用し、したがって同じものを必要とします。

+0

Opensslが有効になっていると私はどのようにphpinfoで知ることができますか?私が見ているのは、このOpenSSL/0.9.8bのapache2handlerです。 –

+2

実際にはOpenSSLとTLSをストリーム/ソケット転送として登録する必要があります。 Registered Stream Socket Transports OpenSSLは、有効な拡張機能であるため、独自のヘッダーの下にある必要があります。 apache2handlerはPHPの設定ではなく、Apacheの設定を表示します。 OpenSSLをサーバ上でコンパイルし、それを使用するように設定されたApacheを使用していますが、おそらくPHPでコンパイルされたOpenSSL PHP拡張はありません。 PHP.iniでOpenSSLを検索し、見つかったら参照してください。 – bucabay

+0

私は唯一持っている: 登録ストリームソケットトランスポート\t OpenSSLのtcp、udp、unix、udg、およびnoヘッダ。 だから私の問題は、ホスティングプロバイダ側の問題だと思います。 ご協力いただきありがとうございます –

6

を使用することは非常に快適です。 Zendのメール輸送とヤフーのSMTPを使用して:

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

これはエラー生成:「アクセス許可は拒否されました」と何のメールが送信されませんでした。すべての解決策を試して3週間後、私は働いていたものが変化していることが分かりました。 $ transport to; $transport = new Zend_Mail_Transport_Sendmail('[email protected]',$mailhost, $mailconfig);

期待どおりに動作...

+1

最後に正しい答えです!それ自体は設定自体ではありませんでしたが、Zend_Mail_Smtpを使用することはgmailでは機能しませんが、Zend_Mail_Transport_Sendmailは機能しませんでした。 – Elie