Silex と SwiftMailer を使用してメーラー スクリプトをセットアップしようとしています。ただし、これまでにメールを送信することはできませんでした。に設定swiftmailer.use_spool
するとfalse
、エラーは発生しませんが、メールも受信しません。代わりに、このようにスプールトランスポートキューをフラッシュすると...
if ($app['mailer.initialized']) {
$app['swiftmailer.spooltransport']
->getSpool()
->flushQueue($app['swiftmailer.transport']);
}
...次の例外が発生します。
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host abc.xyz [ #0]'
これまでのところ、この例外に関するドキュメントは見つかりませんでした。すべてのSMTP設定と資格情報が有効であると確信しています(別のホストも試しましたが、同じ問題です)。ホストに ping を実行することもできます。使用するポートは開いており、php_openssl
有効になっています。
0 を返すSwift\Transport\StreamBuffer.php:269
ため、失敗しているようです。stream_socket_client
$this->_stream = @stream_socket_client($host.':'.$this->_params['port'], $errno, $errstr, $timeout, STREAM_CLIENT_CONNECT, $streamContext);
if (false === $this->_stream) {
throw new Swift_TransportException(
'Connection could not be established with host '.$this->_params['host'].
' ['.$errstr.' #'.$errno.']'
);
}
更新 #1 エラー ログを確認するのを忘れていましたが、次のように表示されています。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/php_openssl.dll' - /usr/lib/php5/20121212/php_openssl.dll: cannot open shared object file: No such file or directory in Unknown on line 0
phpinfo()
モジュールが有効になっていると表示されているにもかかわらず、PHP は php_openssl 拡張機能のロードに失敗しているようです。それはどこにあるべきですか、またはどのように入手すればよいですか?
更新 #2php_openssl.dll
Windows 環境向けの拡張機能を
誤って有効にしようとした可能性があります。削除すると、エラーは明らかにエラー ログから消えますが、主な問題は解決しません。振り出しに戻って..
私は何が間違っているのでしょうか?