メールを送信するSMTPプロトコルについて解説します。
SMTPのセッションの開始を表すコマンドは、HELO(Hello)またはEHLO(Extended Hello)です。EHLOは「Extended(拡張された)」という言葉があるとおり、拡張機能を確認するために使われます。たとえば、SMTP-AUTHや、STARTTLSなどは、通信相手のサーバもこれに対応していなければ、利用できません。STARTTLSであれば、EHLOの応答にSTARTTLSの文字が含まれます。
SMTPプロトコルでは,メール本文を送信する前に,次の図のようにMAIL FROMコマンドにて送信元のメールアドレスを通知し,RCPT TOコマンドにて宛先メールアドレスを通知します。

内容を覚えなくていいのですが、以下は参考まで。

1)Client→Server 3way-handshake SYN
2)Client←Server 3way-handshake SYN,ACK
3)Client→Server 3way-handshake ACK
4)Client←Server 220 サーバの準備OK
5)Client→Server HELO ClientPC1 ←自分のホスト名を送る
6)Client←Server 250 OK
7)Client→Server MAIL FROM user1@XXXX.example.com ←送信者のメールアドレス
8)Client←Server 250 OK
9)Client→Server REPT TO aite@YYYY.example.co.jp ←宛先のメールアドレス
10)Client←Server 250 OK
11)Client→Server DATA ←メールデータを送るというメッセージ。中身は空
12)Client←Server 354 ←OKです。終わるときは"."を入力してください。
13)Client→Server Message Body ←メールのBody(内容)
14)Client→Server End Of Message ← 最初に指定された"."を入力し、メッセージの終わりを告げる。
15)Client←Server 250 OK
16)Client→Server QUIT ←メールの送信そのものの終了。
17)Client←Server 221 ←了解。終了しますよ。
18)Client→Server 3way-handshake FIN,ACK ※この前にFINパケットが欲しいところだが、キャプチャすると存在しない。上記の221メッセージが代用しているかもしれない。
19)Client←Server 3way-handshake ACK

スポンサードリンク