インターネットメールの仕組み
電子メールプログラムの[ 送信 ]ボタンを押したときに何が起こるのか疑問に思ったことはありますか? おそらくそうではないでしょう - それが動作する限り。 しかし、これはまさにあなたが驚くべき理由です。 何かがうまくいかない場合、うまくいかないことを知ることは良いことです。 通常、これはソリューションの半分です。
電子メールを送信すると、SMTPが再生されます。 SMTPはRFC 5321:Simple Mail Transfer Protocolで定義されているSimple Mail Transfer Protocolの略です。 あなたのメールクライアントは 、このクリーンでシンプルな手順を使用して、ある場所から別の場所に電子メールを送信するSMTPサーバーと 話します 。
ザ・フリット
電子メールプログラムはSMTPクライアントになり、 メールサーバーの ポート 25(通常はSMTPポート )に接続し、 EHLOと言います。 コンピュータは最終的には人間だけであり、丁寧になりたいと思っているのは何ですか? 実際には、礼儀正しくするつもりはありませんが、後でHELOコマンド(SMTPコマンドは一般的に4文字で構成されます)の約2つの味をもたらしたSMTPへの後の追加を使用します。
HELOの2つの味
より最近のものであるEHLOは、サーバがサポートするすべての追加機能(配送ステータス通知や、安全なASCII文字以外のメッセージを転送する機能など)を広告するようにします。
すべてのサーバーがこの挨拶を許可するわけではありませんが、追加の機能が存在しないことを自然に想定している単純なHELOを受け入れる必要があります。 どちらのhelloコマンドでも、クライアントは** LOの後にドメインを指定する必要があります。 実際には、これは次のようになります。
220 mail.domain.net ESMTPサーバー
HELO
501 HELOにはドメインアドレスが必要です
HELO localhost
250 mail.domain.net Hello localhost [127.0.0.1]、あなたにお会いできてうれしく思います
(私の入力はイタリック体で、サーバの出力は黒で、5で始まる行はエラーを示しています )
送り主
プロトコルの残りの部分は実際には単純な属性に値する。 電子メールを送信する場合は、キーワードMAIL FROM:で始まります。 これに続いて、から送信者の電子メールアドレスが来る。 ただし、(
MAIL FROM:
250 sender@example.com ...送信者OK
受信者
サーバが送信者のアドレスを受け入れた後、クライアントは受信者のアドレスを与えることができます。 このアクションのコマンド、 RCPT TO:はやや示唆的です。 私は自分自身にメールを送りたい:
RCPT TO:recipient@example.com
250 support@lifewireguide.com ...受取人OK(待ち行列に入れる)
サーバーがキューに入れるということは、メールをローカルに保存し、キューに入れられた他のすべてのメールと間隔(たとえば30分ごと)で一緒に送信します。 この動作は構成によって異なり、サーバーはメールを即座に配信することもあります。
私たちはほとんど終わりました。 しかし、まだ欠けているものは重要な部分です。実際のメッセージです。
メッセージ
「封筒」が完成したので、電子メールメッセージのデータをそのまま引き継ぐことができます。 この「データ」は、電子メールの本文とヘッダーフィールドで構成されます 。
サーバーがメッセージを受け入れる状態を開始するコマンドはDATAです。 これに続いて、電子メールのヘッダーフィールドと本文の両方があり、両方とも1つの大きなテキストブロック(またはデータ)を構成しています。 入力が完了したことをサーバーに伝えるために、1行にドットを単独で使用します(\ r \ n。\ r \ n)。 だから私は私のメッセージを送る:
データ
354メールを入力し、 "。"で終わります 一本一本で
メッセージID:
日付:日、1997年8月17日18:48:15 +0200
投稿者:Heinz Tschabitscher
To:Heinz Tschabitscher
件名:Summast-Proustコンテストの場合
スワンの世界へ!
。
250 SAA19153配達可能なメッセージ
はい、これは、To:フィールドに電子メールが表示されている名前とはまったく異なる名前を付けることができることを意味します。 たとえば、 " Recipient list suppressed"
終わり
MAIL FROM:からの手順を繰り返すことを希望する数の電子メールを送信できます。 。 これで終わったら、 QUITコマンドでサーバーを終了することができます。これは私たちが行うことです。
終了する
221さようなら
これどうやってするの?
わかりやすい解決策は、 送信メールサーバー ( メールクライアントのアカウント設定でアドレスを見つけることができます )にポート25でtelnetすることです。
- コマンドプロンプトを開きます。
- 「telnet <メールサーバー> 25」と入力します。
- SMTPを使用してサーバーと対話します。
より簡単な方法は、 このJavaアプレットを使用することです。 このJavaアプレットは、SMTPプロトコルを模倣し、ダイアログを案内します。