6

dig コマンドを使用して gmail.com メール サーバーを検索し、telnet を使用して dig コマンドによって返された結果を確認しようとしています。

$ dig gmail.com MX

; <<>> DiG 9.7.3 <<>> gmail.com MX
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54145
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;gmail.com.         IN  MX

;; ANSWER SECTION:
gmail.com.      800 IN  MX  10 alt1.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  20 alt2.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  30 alt3.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  40 alt4.gmail-smtp-in.l.google.com.
gmail.com.      800 IN  MX  5 gmail-smtp-in.l.google.com.

;; Query time: 14 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Dec 27 02:09:50 2011
;; MSG SIZE  rcvd: 150

Dig コマンドによると、「alt1.gmail-smtp-in.l.google.com」はメール サーバーの 1 つです。リンク「alt1.gmail-smtp-in.1.google.com」の smtp ポート 25 または 587 が開かれていません (telnet を使用して確認)。ただし、リンクhttp://support.google.com/mail/bin/answer.py?hl=en&answer=13287は、smtp.gmail.com が gmail.com のメール サーバーであり、ポート 587 が開くことを示しています。なぜ dig が間違った電子メール サーバーを提供しているのか、または dig の出力を読む際の私の理解がどこで間違っているのか。

4

1 に答える 1

17

一般理論

一般的に、SMTPサーバーには、送信メールの送信と他のネットワークからのメールの受信という2つの異なる機能があります。これらの2つの機能は、同じSMTPプロトコルを使用して実行されます。通常、これら2つの機能は同じマシンで実行され、歴史的には同じポートで実行することもできます。したがって、人々がこれら2つの機能を混同している理由は簡単にわかります。

これらの2つの機能は引き続き同じSMTPプロトコルを使用しますが、これらが同じポートで実行されることはますます真実ではなくなります(システム管理者は、発信ポート25のトラフィックをブロックすることで顧客がスパムを送信するのを防ぎます)。最近のSMTP送信ではSSL暗号化が使用されることがよくありますが、2つの異なるネットワーク間でのメールの転送はプレーンテキストで行われます。Googleのネットワークは複雑であるため、これら2つの機能が異なるマシンで実行されても驚かないでしょう。(免責事項:私はGoogleで働いていますが、GMailの操作に関する内部知識はありません。)

  1. 送信メール送信。GMailからメールを送信する場合、特にGmailアカウントから送信するようにEvolutionなどのメールクライアントを構成する場合は、メールの送信に使用するSMTPサーバーを構成する必要があります。電子メールクライアントはこのSMTPサーバーに直接接続し、そのSMTPサーバーがインターネット上の適切な場所にメッセージを送信する責任を負います。これは多くの場合、特別なポートを使用して構成され、許可されたユーザーのみが電子メールを送信できるようにログイン情報を必要とします。これは、上記のサポートリンクが処理している機能です。ポート587のドメイン名を使用するように電子メールクライアントを構成します。電子メールクライアントは、通常のドメイン名検索smtp.gmail.comにDNSレコードを使用してこのサーバーを検出すると思います。A

  2. 他のネットワークからの電子メールの受信。メッセージを他のネットワークに中継しているSMTPサーバーは、MXレコードをgmail.com検索し(この場合、メッセージの送信先がであることがわかりますalt1.gmail-smtp-in.l.google.com)、そのホストのポート25にメッセージを送信します。これは、DIGで検索し、telnetでテストしたものです。

    alt1.gmail-smtp-in.l.google.comでは、消費者向けインターネット接続からtelnetを実行しようとしたときに、なぜポート25が表示されなかったのでしょうか。gmail.com答えは、発信スパムを防ぐために、ISPはポート25で発信トラフィックをブロックするということです。したがって、ISPのSMTPサーバーまたはログインを必要としポート587で送信を行う他のSMTPサーバーを経由せずに、ポート25に何も送信することはできません。。

あなたがやろうとしたこと。

つまり、機能#2を実行しようとしています。gmail.com自分でMXルックアップを実行したところ、サーバーに対応していることがわかりましたalt1.gmail-smtp-in.l.google.com。次に、のポート587にtelnetで接続してみましたalt1.gmail-smtp-in.l.google.com。そのポートでリッスンしていないため、これは機能しませんでしたalt1.gmail-smtp-in.l.google.com(機能#2を実行するには、ポート25でリッスンする必要があるだけです)。次に、のポート25にtelnetで接続してみましたalt1.gmail-smtp-in.l.google.com。ISPがポート25での発信接続をブロックしているため、これは機能しませんでした。

gmail.comにメールを送信するために必要なことは、機能#1を実行するサーバーを見つけて、そこからメールを送信することです。または、スパムの避難所であることを気にせず、ポート25の発信トラフィックをブロックしないISPを見つけます(実際には、ブロックしないでください)。

于 2011-12-27T00:34:22.967 に答える