SMTPとおしゃべりするメモ
SMTPサーバとおしゃべりするときにいつも忘れてしまうお作法メモ*1
# のあとはコメントなので無視してください
SMTPサーバ(基本は25番ポート)に接続
$ telnet localhost 25 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1).
めーらーだえもんさん(Mailer-Daemon)が現れたらサーバ名付きで挨拶 [ HELO ]
qmailはサーバ名いらないっぽい
Escape character is '^]'. 220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Wed, 8 Oct 2008 00:13:55 +0900 HELO <サーバ名> # ここでお返事 250 localhost.localdomain Hello サーバ名 [127.0.0.1], pleased to meet you
メール送信元を宣言 [ MAIL FROM: ]
MAIL FROM:<送信元メールアドレス> # メールアドレスは<>で括る 250 2.1.0 <送信元メールアドレス>... Sender ok
メール送信先を宣言 [ RCPT TO: ]
RCPT TO:<送信先メールアドレス> # メールアドレスは<>で括る 250 2.1.5 <送信先メールアドレス>... Recipient ok
コンテンツ宣言[ DATA ] を行ってメールヘッダーを記述
ここでは簡略化のためSubjectのみ
DATA 354 Enter mail, end with "." on a line by itself Subject: test mail # ヘッダー部はここから
ヘッダー部分から空白行を1行入れてメール本文を記述
メール本文の最終行には"."のみを記入して改行
# 1行空白 Test Mail From Sendmail .
めーらーだえもんさんがお仕事を始めてくれるので終了宣言[ QUIT ]をして接続終了
250 2.0.0 m97FDtPY021669 Message accepted for delivery QUIT 221 2.0.0 localhost.localdomain closing connection Connection closed by foreign host.
以上ー
基本的に上の流れでサーバとおしゃべりすることでメールが送られるわけで、OutlookやらThunderBirdやらのメールクライアントも上記のようなおしゃべりを高速で行ってるって考えると「プロトコル」って言葉の意味がとってもしっくりくるのです
*1:メール送信だけとかならmailコマンドでも十分なんだけどね