0

こんにちは:
)PHPの機能に問題があります。なぜうまくいかないのか理解できず、それが私のプロジェクトの問題です。

コンテキスト:
私はJoomlaを持っていて、オプション「SMTPサーバー」を介して電子メールを送信したいと考えています。動作せず、「SMTPホストに接続できません」というメッセージが表示されます。
私はグーグルでその問題を検索しました、そして私が見つけたすべての解決策は私のために働きませんでした。そこで、コードを調べて何が起こったのかを確認することにしました。この問題は、組み込みのPHPメソッドであるメソッド「fsockopen()」をコードで呼び出すときに発生します。このメソッドは、ホストへの接続がタイムアウトしたことを示しています。
面白くなるところ:同じマシン上で、メールクライアント(Evolution)とまったく同じパラメーターを使用して、このホストに接続して電子メールを送信できます(したがって、ポートが開いているなどの問題はありません)。

方法は次のとおりです。

fsockopen($host, $port, $errno, $errstr, $tval);  

使用されたパラメータと返されたエラー:

$host : ssl://smtp.laposte.net. 
$port : 25
$errno : 110
$errstr : Connection timed out
$tval : 10

いくつかの技術情報:
PHPバージョン:5.2.14
ソケットサポート:有効
OS:仮想マシン(VMWare)でのUbuntu 10.10
ポート:ポート25(smtp)は、仮想マシンと仮想マシンのホストで開いています。

この機能がどのように機能し、なぜ接続できないのかを誰かが知っていれば、それは私を大いに助けてくれます、
よろしくお願いします、
ダミアン

4

1 に答える 1

1

SSL を使用しているようですが、php.ini で OpenSSL を有効にしていますか?

OpenSSL サポートがインストールされている場合は、ホスト名の前に ssl:// または tls:// のいずれかを付けて、TCP/IP を介した SSL または TLS クライアント接続を使用してリモート ホストに接続できます。

http://php.net/manual/en/function.fsockopen.php

于 2010-12-09T09:57:59.530 に答える