SMTPプロトコルについて詳しく知るために、Pythonで遊んでみました。もっと正確に言えば、私はホストのSMTPサーバーに直接メールを送信しようとしていますが、ほとんど成功していません。
たとえば、gmail.comアドレスにメールを送信したい場合、xmlレコードでgmail.comを検索します。
>> nslookup -type=MX gmail.com
gmail.com MX preference = 40, mail exchanger = alt4.gmail-smtp-in.l.google.com
gmail.com MX preference = 5, mail exchanger = gmail-smtp-in.l.google.com
gmail.com MX preference = 10, mail exchanger = alt1.gmail-smtp-in.l.google.com
次に、Pythonで次のことを行います。
import smtplib
# Tried both port 465 and 587 (can't test port 25 since it's blocked by my ISP)
s = smtplib.SMTP("alt1.gmail-smtp-in.l.google.com", 587)
いくつか試してみましたが、1つを除いて、常に次のようになりました。
「[Errno 10051]到達不能なネットワークに対してソケット操作が試行されました」または
「[Errno10060]接続されたパーティが一定期間後に適切に応答しなかったため、接続の試行が失敗しました時間の、または接続されたホストが応答に失敗したために確立された接続が失敗しました」例外。
一部のメールサーバーがIPを逆引きし、ドメインを持っていない場合は接続を拒否することをどこかで読みました。彼らはどのようにそれをしますか?
また、多くのメールサーバーが動的IPアドレス(ISPの個人顧客として明らかに持っている)からの受信メールを拒否することもどこかで読みました。IPアドレスが動的か静的かをどのように確認できますか?
これらは、ほとんどのサーバーが私の接続を拒否しているように見える理由ですか?それともそれ以上のものがありますか?