メールの仕組み

こんばんは

メールサーバの仕組みと言われて、構成が頭に浮かべられなかったので、改めて整理しました。 WEBメールの仕組みを採用している企業が多いかと思いますが、この仕組みさえ知っておけば応用可能です。 メールサーバって何という人はこちらで勉強してください。

milestone-of-se.nesuke.com

疑問1.SMTP接続でID/パスワード情報を送付して大丈夫なの?*1

SMTPは平文なので、盗聴可能。サーバ証明書を利用した、SMTPS(SMTP over SSL)という方式を利用すれば暗号化可能。 メール送受信に関しても同じことが言えますな。

SMTPSを利用する場合は以下の対応が必要

  • SMTP中継サーバに(サーバ証明書+秘密鍵)を導入
  • クライアントPCのメーラにroot証明書+CA証明書を導入(基本的にはメーラに初期導入されている模様*2 ブラウザに標準設定されている話と同じ)

おまけ情報*3

  • 証明書の正しさを確認しない(無視する)オプションがある(つまり、オレオレ証明書でもエラーにはならず暗号化できるということ)
  • クライアントPCにクライアント証明書を求める方法も可能
  • 送受信両方の機能を持つSMTPサーバの場合、SMTPS必須の設定(Postfix encrypt/verify/secure)にしてしまうと、先方がSMTPS非対応だと先方からメールが送信できないという事態が発生する

疑問2.MXレコードってなんだっけ

メールの仕組みを理解する!メールサービス用語集 ~基本編~ | コラム・活用方法 | BIGLOBE biz.

メールを受信した SMTP 中継サーバは、宛先メールアドレスの @ 以降のドメインネームの MX レコードを DNS サーバに問合せます。

メール送信先ドメイン情報をもとにMXレコードで名前解決をして、 そのメール送信先をさらにAレコードで検索して送信先IPアドレスを取得する。

例えば、「example.com」というドメインのMXレコードが「IN MX 10 mx1.example.com」と設定されているとすると、xxx@example.com へのメールは mx1.example.com  というサーバに送られることになります。 また、1つのドメインに対して、メールの送り先となるサーバが複数ある場合もあります。 その場合、MXレコード内に合わせて指定されている数字が小さいものから優先してメールが送信されます。例えば、MXレコードが、 IN MX 10 mx1.example.com IN MX 20 mx2.example.com

疑問3.SPFレコードなんつーのもあったよな

SPFとは? | SendGridブログ

テキスト形式でDNSレコードに情報を埋め込む仕組みでしたね。 一般的に送信元IPアドレスの正しさを担保する目的で利用されます。

G Suite採用した時に先方で迷惑メール扱いにならないようにSPFレコード登録*4したのを思い出しました。

記載例*5

f:id:Hikaruru_G:20191123215147p:plain

参考までにWEBメールはこんな感じらしい

milestone-of-se.nesuke.com