web-dev-qa-db-ja.com

PHPメール機能でメールを送信するために25ポートを開く必要がありますか?

Linux Webアプリがあります。

PHP mail関数を使用してのみメールを送信するためにポート25を開く必要がありますか?ポート25を開く必要がある場合、メールの受信を無効にするにはどうすればよいですか?

編集: sendmailが私のサーバー上のメッセージ転送エージェントであることを理解しているので、質問しています。

7
Yosef

php mail()関数は、バイナリのようにsendmailを使用してメールを送信します。

mTA(ポート25でリッスンするサービス)には、sendmailのようなプログラムがあり、その目的に役立ちます。

ポート25を開いたくない場合は、世界からのすべての接続に対してファイアウォールを使用できます。例えば

iptables -I INPUT -p tcp -i eth0 --dport 25 -j REJECT

4
Hrvoje Špoljar

番号

ファイアウォールルールで送信トラフィックが許可されている限り、ポート25を開いてsend電子メールを送信する必要はありません。

マシンに受信メールを送信する場合にのみ、ポート25を開く必要があります。

9
hobodave

ファイアウォールがサーバー/ゲートウェイ/どこに設定されているかによります。

ほとんどの場合、ファイアウォールは、サーバーに着信するポート25のトラフィックなどの着信トラフィックをブロックします。そうは言っても、私は通常、既知のメールサーバーからのポート25での送信トラフィックのみを許可するようにファイアウォールを構成します。

どちらの方法でも、それは実際にはファイアウォールの構成に依存しますが、質問に答えるのと同じくらい詳細に質問に答える...発信25を開くことは、着信25を開くこととは異なります。ポート25で送信トラフィックを有効にすると、メールを送信できるようになります。受信を閉じたままにすると、メールを受信できなくなります。

もちろん、これはファイアウォールがネットワークトポロジのどこにあるかによって異なります...

2
dotalchemy

メールを送信するだけでメールを受信したくない場合は、ポート25を開いて、開けないようにすることができます。または、 NO-IPリレー (会社とは関係ありません)などの非標準のポートリレーを使用できます。 。なぜこれが必要なのかはわかりませんが。

2
Jacob