#author("2023-03-04T12:32:30+09:00","default:k1rou","k1rou") #author("2023-03-04T12:38:30+09:00","default:k1rou","k1rou") *SMTP とは [#u028931d] **名称 [#ya6704f8] -Simple Mail Transfer Protocol -簡易メール転送プロトコル **概要 [#hf2d0b87] -[[電子メール]]を送信するアプリケーション層([[TCP/IPモデル]])の[[通信プロトコル]] -[[ポート番号]]: --25/TCP ---一般的にサーバ間の転送で使われる --587/TCP ---ユーザとサーバ間の転送で使われるサブミッションポート -[[DNS]]のMXレコードを使い転送先のサーバを特定する。 -RFC5321 *システム構成 [#pd775c5b] -SMTPサーバ -SMTPクライアント *SMTPパケットの構成 [#mea48f3a] -IPヘッダ -TCPヘッダ(ポート番号:25) -SMTPデータ **エンベロープ [#g79370c7] -SMTPのメール配信で実際の送信元、送信先として使われる項目。(メールヘッダの項目が使われるわけではない) -From --SMTPのMAILコマンドの引数「MAIL FROM:」 --送信元メールアドレスで、メールヘッダ「Return-Path」に同じ値が設定されることがある。 -To --SMTPのRCPTコマンドの引数「RCPT TO:」 --送信先メールアドレスで、メールヘッダ「Received」に同じ値が設定されることがある。 *SMTP の処理フロー [#h275ae8f] -接続の確立 --TCPコネクシション確立 --(←)220:準備OK --(→)HELO or EHLO --(←)250:OK -返信先・宛先の通知 --(→)MAIL FROM --(←)250:OK --(→)RCPT TO --(←)250:OK -メッセージの送信 --(→)DATA --(←)354:待受OK --(→)メール本文の送信 --(←)250:OK -接続の終了 --(→)QUIT --(←)222:切断OK *SMTPプロトコルのコマンド [#m7bbb548] -HELO --SMTP拡張機能をサポートしていない。 -EHLO --Extended Hello --SMTP拡張機能をサポートしている。 -MAIL FROM --エラーが発生した場合のバウンスメールの送信先アドレス --送信者のエンベロープアドレス --メールヘッダの Return-Path: にセットされる -RCPT TO --宛先のメールアドレス --受信者のエンベロープアドレス --メールヘッダの Received: for にセットされる -VRFY --メールアドレスのアカウント情報を取得する -EXPN --メーリングリストに登録されているアカウントの情報を取得する -DATA --メール本文の送信要求 -QUIT --接続終了の要求 *SMTPの認証 [#u44c5617] -SMTP標準には認証の仕様を持たないので、以下の規格により認証を実現する。 **SMTP-AUTH [#w98b453f] -SMTPの拡張機能で、SMTPに[[ユーザ認証]]機能を追加した方式。 -「[[SMTP-AUTH]]」参照 **POP before SMTP [#y5f5cf7a] -[[POP3]]の[[ユーザ認証]]機能を使ってSMTPを利用する方式 --[[POP3]]で認証してから一定時間、メールの送信を許可する。 --メールを受信してから、メールを送信する順番になる。 -認証に成功したクライアントのIPアドレスをPOPサーバに一定時間登録しておき、SMTPサーバは送信要求してきたクライアントのIPアドレスが登録されている場合のみ、送信要求を受ける。 -RFC2476 *通信の暗号化方式 [#u6aa15eb] **SMTPS [#hc9db91d] -SMTP over SSL -SMTP over [[TLS]] -クライアント(MUA)と発信元メールサーバ間の通信を暗号化する。 -[[デジタル証明書]]による[[ユーザ認証]]を行うことも可能。 -ポート番号:465/TCP **MTA-STS [#c38d7437] -RFC8461 -SMTP Mail Transfer Agent Strict Transport Security **SMTP-TLSRPT [#f521330f] -RFC8460 -SMTP TLS Reporting **[[STARTTLS]] [#wd25f57e] -発信元メールサーバと受信側メールサーバ間の通信を暗号化するために使われる。 -暗号化されていない状態で通信を開始した後に、発信元メールサーバがSTARTTLSコマンドを実行して、受信側メールサーバが対応していると暗号化通信が開始される。 -ポート番号:25/TCP *不正利用の対策 [#d289d2bf] **[[ISP]]などが行っている対策 [#y323543a] -[[IP25B]] --外部から迷惑メールを着信しないようにする --自社および他社の[[ISP]]から動的に割り当てられた[[IPアドレス]]を発信元とする[[ISP]]内のメールサーバの25番ポート宛の通信を遮断することで、[[ISP]]のユーザが迷惑メールを着信しないようにする -[[OP25B]] --[[オープンリレー]]対策 --[[ISP]]が指定したメールサーバ以外のメールサーバから外部のメールサーバの25番ポート宛の通信を遮断することで、[[ISP]]のユーザが迷惑メールを発信できないようにする *関連用語 [#i9a40deb] -[[電子メール]] -[[ESMTP]] -Extended SMTP -[[Mailgun]] -[[MIME]] -[[MSA]] -Message Submission Agent -[[OSI参照モデル]] -[[POP3]] -[[Postfix]]