15

ここ数週間、私は電子メールがどのように機能するかを学ぼうとしてきました。クライアントが POP を使用してサーバーからメールを受信するプロセスをよく理解しています。また、クライアント コンピューターが SMTP を使用して SMTP サーバーにメッセージの送信を依頼する方法も理解しています。しかし、私はまだ何かが欠けています...

私が理解している方法では、送信メールは 3 回移動する必要があります。

  1. クライアント (Thunderbird を使用する Gmail ユーザー) からサーバー (Gmail)
  2. 最初のサーバー (Gmail) から 2 番目のサーバー (Hotmail) へ
  3. 2 番目のサーバー (Hotmail) から 2 番目のクライアント (OS X メールを使用する hotmail ユーザー)

私が理解しているように、ステップ 1 ではクライアントが通信するために SMTP を使用します。クライアントは何らかの方法で (たとえば、USER と PASS を使用して) 自分自身を認証し、メッセージを gmail サーバーに送信します。

ただし、gmail サーバーがメッセージを hotmail サーバーに転送する方法がわかりません。

ステップ 3 では、hotmail サーバーは POP を使用してメッセージを hotmail クライアントに送信します (ここでも認証を使用します)。

ですから、大きな問題は次のとおりです。[送信] をクリックすると、メールがメッセージを Gmail サーバーに送信します。Gmail サーバーはメッセージを、たとえば hotmail サーバーに転送して、友人が受信できるようにするにはどうすればよいでしょうか?

どうもありがとう!

〜ジェイソン


ありがとう、これまでのところ役に立ちました。

私が理解しているように、最初のクライアントは SMTP を使用して最初のサーバーにメッセージを送信します。多くの場合、ポート 25 (通常) で smtp.mail.SOMESERVER.com などのアドレスに送信します。

次に、SOMESERVER は再度 SMTP を使用して、ポート 25 でメッセージを RECEIVESERVER.com に送信します (smtp.mail.RECEIVESERVER.com やその他の凝ったものではありません)。

次に、受信者が POP を使用して RECEIVESERVER にメールを要求すると、メッセージが受信されます。

改めて感謝します (特に dr-jan に),

ジェイソン

4

7 に答える 7

18

Gmail の SMTP サーバー (Thunderbird からのメッセージを受け入れた) は、メッセージを最終的な受信者にルーティングします。

これは、DNS を使用して、宛先の電子メール アドレス (この例では hotmail.com) のドメイン名部分の MX (メール エクスチェンジャー) レコードを見つけることによって行われます。DNS サーバーは、メッセージの送信先の IP アドレスを返します。宛先 IP アドレスのサーバーは、受信メッセージを受信できるように (標準ポート 25 で) SMTP を実行していることが期待されます。

メッセージが hotmail サーバーによって受信されると、適切なユーザーがログインして POP (または IMAP) を使用してメッセージを取得するまで保存されます。

ジェイソン - あなたのフォローアップに答えるために...

次に、SOMESERVER は再度 SMTP を使用して、ポート 25 でメッセージを RECEIVESERVER.com に送信します (smtp.mail.RECEIVESERVER.com やその他の凝ったものではありません)。

その通りです。送信先のドメイン名は、受信者の電子メール アドレスの「@」以降のすべてと見なされます。多くの場合、RECEIVESERVER.com は、incoming.RECEIVESERVER.com (または、実際には smtp.mail.RECEIVESERVER.com) のような、より具体的なエイリアスです。

nslookup を使用してローカル DNS サーバーにクエリを実行できます (これは Linux と Windows コマンド ウィンドウで機能します)。

nslookup
> set type=mx
> stackoverflow.com
Server:         158.155.25.16
Address:        158.155.25.16#53

Non-authoritative answer:
stackoverflow.com       mail exchanger = 10 aspmx.l.google.com.
stackoverflow.com       mail exchanger = 20 alt1.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 30 alt2.aspmx.l.google.com.
stackoverflow.com       mail exchanger = 40 aspmx2.googlemail.com.
stackoverflow.com       mail exchanger = 50 aspmx3.googlemail.com.

Authoritative answers can be found from:
aspmx.l.google.com      internet address = 64.233.183.114
aspmx.l.google.com      internet address = 64.233.183.27
>                  

これは、stackoverflow.com のすべてのユーザーへの電子メールが、上記の gmail サーバーのいずれかに送信される必要があることを示しています。

上記のウィキペディアの記事 ( http://en.wikipedia.org/wiki/Mx_record ) では、上記の優先度番号 (10、20、...、50) について説明しています。

于 2008-08-28T16:47:51.113 に答える
5

あなたはメール転送エージェントを探しています。ウィキペディアには、このトピックに関する素晴らしい記事があります。

インターネット メッセージ処理サービス (MHS) 内で、メッセージ転送エージェントまたはメール転送エージェント (MTA) またはメール リレーは、クライアント サーバー アプリケーション アーキテクチャを使用して、あるコンピューターから別のコンピューターに電子メール メッセージを転送するソフトウェアです。MTA は、Simple Mail Transfer Protocol のクライアント (送信) 部分とサーバー (受信) 部分の両方を実装します。

メール サーバー、メール エクスチェンジャ、および MX ホストという用語は、MTA 機能を実行するコンピュータを指すこともあります。ドメイン ネーム システム (DNS) は、MTA サービスを提供するホストのドメイン名を含むメール エクスチェンジャー (MX) リソース レコードを使用して、メール サーバーをドメインに関連付けます。

于 2008-08-28T16:40:26.140 に答える
5

また、Thunderbird クライアントと同様に、GMail から HotMail へのリンクが SMTP を使用する理由も知りたいと思われるかもしれません。つまり、クライアントは SMTP 経由で電子メールを送信でき、DNS を使用して hotmail.com の MX レコードを取得できるのに、gmail.com を完全にスキップして直接そこに送信しないのはなぜでしょうか?

いくつかの理由があります。一部は歴史的なもので、一部はセキュリティのためです。元の質問では、Thunderbird クライアントがユーザー名とパスワードでログインすると想定されていました。多くの場合、そうではありません。SMTP では、メールを送信するために実際にログインする必要はありません。また、SMTP には、実際に誰がメールを送信しているかを知る方法がありません。こうして、スパムが誕生しました!

残念なことに、いまだに多くの SMTP サーバーがあり、誰でも、誰でも接続してメールを送信することができ、送信者が自分の主張する人物であると盲目的に信頼しています。これらのサーバーは「オープン リレー」と呼ばれ、大量のスパムが発生するため、他のメール サーバーのより賢い管理者によって定期的にブラックリストに登録されます。

責任ある SMTP サーバー管理者は、特別な場合にのみメールの配信を受け入れるようにサーバーを設定します。信頼できる送信者として彼を識別する資格情報を提示します。ケース 1 は、おそらく職場からメールを送信するときに発生するものです。あなたのマシンは信頼できるネットワーク上にあるので、誰にでもメールを送信できます。企業のメール サーバーの多くはまだ認証を必要としないため、オフィス内のだれでもなりすますことができます。楽しい!ケース #2 は、誰かがあなたにメールを送信した場合です。ケース #3 はおそらく、GMail の例で起こることです。信頼できるネットワークから来たのではなく、スパマーと一緒にインターネットに出ているだけです。しかし、パスワードを使用することで、GMail に対して本人であることを証明できます。

歴史的な側面は、昔は gmail と hotmail の間のリンクが断続的である可能性が高かったことです。メールをローカル サーバーのキューに入れることで、リンクが確立されたときに、ローカル サーバーがメッセージをリモート サーバーに転送し、受信者のエージェントが受け取るまでメッセージを保持できることを知っていれば、そのメールを手放すことができます。 .

于 2008-08-28T17:28:46.913 に答える
2

最初のサーバーは DNS で Hotmail サーバーの MX レコードを探します。MX は、特定のドメインのメール サーバーを定義する特別なレコードです。Hotmail サーバーの IP アドレスがわかれば、GMail サーバーは SMTP プロトコルを使用してメッセージを送信し、応答を待ちます。Hotmail サーバーがダウンすると、GMail サーバーはメッセージの再送信を試みます (サーバー ソフトウェアの構成によって異なります)。プロセスが正常に終了した場合は正常に終了し、正常に終了しなかった場合、GMail サーバーはメッセージを配信できなかったことを通知します。

于 2008-08-28T16:47:29.853 に答える
2

電子メールがどのように機能するかを本当に知りたい場合は、SMTP RFCまたはPOP3 RFCを読むことができます。

于 2008-08-28T16:55:20.613 に答える
1

ステップ 2 から 3 (つまり、Gmail から Hotmail へ) は通常、SMTP (または ESMTP - 拡張 SMTP) を介して行われます。

Hotmail は POP3 経由でクライアントに何も送信しません。ここでいくつかのニュアンスを理解することが重要です。クライアントは POP3 経由で Hotmail に連絡し、そのメールを要求します。(つまり、クライアントがディスカッションを開始します)。

于 2008-08-28T16:42:23.670 に答える
1

すべての電子メールは SMTP (または ESMTP) を使用して転送されます。
理解しておくべき重要なことは、someguy@hotmail.com にメッセージを送信するとき、このメッセージの宛先は彼の PC ではないということです。宛先は、hotmail.com サーバーの someguy の受信トレイ フォルダーです。
メッセージが宛先に到着した後。ユーザーは、hotmail サーバーのアカウントに新しいメッセージがあるかどうかを確認し、POP3 を使用してそれらを取得できます。

また、SMTP を使用して PC から hotmail に直接送信することにより、gmail サーバーを使用せずにメッセージを送信することもできます。

于 2008-08-28T17:03:57.987 に答える