3

次のような fsockopen (または代わりに stream_socket-client) を使用して SMTP サーバーに接続する非常に単純なコード スニペットがあります。

<?php
$url = gethostbyname("mx6.go2.pl");
echo $url;
$fp = fsockopen($url, 587, $errno, $errstr, 10);
if (!$fp) {
echo "port is closed or blocked"
} else {
echo "port is open and available";
fclose($fp);
}
?>

残念ながら、25,587 や 2525 などの標準ポートのいずれにも接続できません。これは、両方のホスト プロバイダーがこれらのポートを使用するアウトバウンド接続をブロックしているためです。(25 または 587 経由でのみ内部 SMTP サーバーまたはローカルホストに接続できます)

別のコードまたはポートを使用してこの問題を回避する方法はありますか (つまり、プログラムによるものであり、独自のサーバーのインストールのようなものではありません)。

乾杯、

マルシン

4

1 に答える 1

1

プロバイダーがこれらの送信ポートをブロックしている場合、それについてできることは何もありません。これらは標準の SMTP ポートであるため、SMTP サーバーが他のポートで接続を受け入れている可能性はほとんどありません。唯一の希望は、プロバイダーにアカウントのこれらのポートのブロックを解除するよう依頼するか、ポート 80 で接続する外部の HTTP ベースのプロキシ サーバーを見つけることです (プロバイダーがそのアウトバウンド ポートもブロックしない限り)。

プロバイダーの内部 SMTP サーバーを使用できないのはなぜですか? それがあなたがすべきことです。メッセージを別の SMTP サーバーに中継します。最近では、スパムやその他の悪用を防ぐために SMTP サーバーがますますロックダウンされているため、SMTP サーバーに直接接続できない場合があります。そのサーバーのホワイトリストのプロバイダー。

于 2012-10-17T17:29:19.717 に答える