Perl でメール送信(メールの仕組み)

メールの仕組み

ヘッダ(header)
空行
本文(body)
    電子メールのメッセージは、配信情報を格納するヘッダ(header)と本文(body)
   に分かれている。ヘッダと本文を区切るのは空行だけ。

    ヘッダには、差出人や宛先といった配信情報の他に、件名、送信に使用した
   メールソフトなどの補助的な情報が、「フィールド名: 値」という形式で
   記述されている。

    ヘッダでメールアドレスを記述する際は、< > で囲む。このルールがある為、
   メールアドレスだけでなく、ユーザ名を含むことが出来る。

    From: foo <foo@example.com>

    メールソフトは、ヘッダの To:, Cc: フィールドにメールアドレスを格納し、
   Bcc で指定されたメールアドレスは格納しない。

      From: 送信元,  To: 送信先,  Subject: 件名,
      Cc: To(送信先)に見える同報,  Bcc: To(送信先)に見えない同報

    メールは 7bit のデータを送信。MIME は、8bit のデータを 7bit に変換。

telnet によるメール送信

[user]$ telnet www.example.com 25

      220 www.example.com ESMTP Postfix 2.10.1   # 受付可能(サーバー名/バージョン)
      helo www.example.com   # 接続の確立
      250 www.example.com   # 実行終了
      mail from: <foo@example.com>   # 実際の送信元
      250 2.1.0 Ok
      rcpt to: <bar@example.com>   # 実際の送信先
      250 2.1.5 Ok

      data   # 本文開始
      354 End data with <CR><LF>.<CR><LF>

      from: foo              # メーラーに表示される送信元
      to: bar                # メーラーに表示される送信先
      subject: test          # 件名
      test                   # 本文
      test
      .                      # ピリオドで本文終了
      250 2.0.0 Ok: queued as 656191C1F37

      quit   # セッション切断
      221 2.0.0 Bye   # 接続を閉じる
      Connection closed by foreign host.