【書評】メール技術の基礎を抑えたい方必見「実務で使える メール技術の教科書」
こんにちは!AWS事業本部のおつまみです。
みなさん!メール技術について自信はありますか?私はちょっと不安でした。
日頃、 Amazon SES をよく利用しているのですが、メール技術の基本について腹落ちできていないと感じていました。 そんな中、2024/2/21に「実務で使える メール技術の教科書」が発売されました!
今の自分にぴったりだと感じたので、さっそく読んでみました!
本記事では本書の概要と感想を共有します。
章別の概要まとめ
1章:メールが相手に届くまで
- メール送信にはSMTPサーバー、メール受信にはPOP,IMAPサーバーが利用されている。
- これらの複数サーバーを経由し、メールが相手に届けられている。
- メールを相手に届けるためには、ドメインの名前解決が行われている。
IPアドレス,DNSなど基礎知識もわからない人向けに1から解説してくれている章。基礎的な知識があれば、眺め読みor読み飛ばしても問題ない。
2章:送受信に使われるプロトコル
- SMTP,POP,IMAPによるメール送受信方法
- SMTPによるメール送信の裏側では、メールソフトとメールサーバの間でのSMTPコマンド(要求)・SMTP応答(返答)が実行されている。
- POPは利用者認証やメールのダウンロード、メールの削除を担当している。
- IMAPは利用者認証やメールのダウンロードを担当としている。削除は行わず、メールサーバ側でメールを管理する。
- メールヘッダを確認することでセキュリティの確保や配送トラブルの問題を解決できる。
- SMTP認証には、SMTP AUTHが一般的であり、認証方式には以下がある。
- パスワードが暗号化されないPLAINやLOGIN(SESはデフォルトで、PLAIN 認証方式が使われる)
- パスワードが暗号化されるCRAM-MD5やSCRAM-SHA-1
- 大量メール送信ができないようにプロバイダによって25番ポートを制限していることを「OP25B」と呼ぶ。
- 通常のメール送信者がメール送信する時にはサブミッションポートの587を利用する。(ポート465は現在非推奨)
3章:メールサーバの構築とDNSの設定
- SMTPサーバー
- 代表的なソフトウェアはSendmailやPostfix
- クラウド型サービスとして、SendGrid や Amazon SESもよく使用されている。
- POPサーバー・IMAPサーバー
- 代表的なソフトウェアはDevecot
- グループウェア一体型製品
- 上記のサーバを構築するのではなく、Google Workspace や Outlook を使用する企業も多い。
各サーバとDNSサーバの構築手順について詳しく解説してくれている章。メールサーバを構築したことない人はこの章を参考に構築してみましょう!
4章:ファイル添付とHTMLメール
- 文字コード
- メールは、送信者と受信者の間でテキストデータをやり取りするため、文字コードの設定が必要になる。
- 文字コードとは、文字を数値に置き換えるための規則のこと。
- 表現する文字列によって、ASCII、EUC-JP、UTF-8、ISO-2022-JPなど様々な文字コードが用意されており、ヘッダ部分でContent-Type フィールドに指定する。
- 文字コードを決めた後は、文字列をバイナリデータ(バイト列)に変換、バイナリデータをBase64に変換している。
- ファイル添付
- MIME(Multipurpose Internet Mail Extensions)と呼ばれる規格で、メールにおけるマルチメディアデータの転送方式を定義している。
MIME-Version
、Content-Type
、Content-Transfer-Encording
をヘッダーに指定し、表現している。
- HTMLメール
- メールの文面を装飾する時に使用できるが、テキストメールより容量が大きくなるため注意。
ファイルが添付されたHTMLメールのソースを実際に見てみると、この章がより一層深まるのでおすすめです。 Gmailの場合は、「メッセージのソースを表示」から確認できます。
5章:スパムメールを防ぐ技術
- メール本文のFrom欄は自由に記述できるため、差出人は容易に偽装できる。
- そのため、送信ドメイン認証の設定は必須である。
- 送信ドメイン認証
- SPF: 送信ドメインの許可IPアドレスを設定し、なりすましを防ぐ仕組み。
- DKIM: 電子署名を利用して、メールの改ざんを検知する認証方式。
- DMARC: SPFとDKIMの結果を受け取り、なりすまし対策のポリシーを設定する枠組み。
- スパムメールだと誤認されるのを防ぐため、上記の認証対策や開封率をあげるためのメール件名にするなどの考慮が必要である。
送信ドメイン認証の解説図がとてもわかりやすかったです。弊社ブログだとこれもおすすめです。
6章 メールの暗号化と署名
- メールの暗号化には通信と本文の暗号化がある。
- 通信の暗号化
- STARTTLS:サーバ間の通信経路のみを暗号化
- 既存プロトコルの拡張のため、対向サーバがSTARTTLSに対応していない場合は、自動的に平文で通信されるため、暗号化できない。
- 既存プロトコルの拡張ではなく、はじめから暗号化した状態で通信する
PoP over SSL/TLS
、IMAP Over SSL/TLS
,SMTP over TLS/SSL(SMTPS)
が推奨されている。
- 本文の暗号化
- S/MIME:メール本文自体を公開鍵暗号方式で暗号化
- 送信者と受信者間で事前に鍵交換が必要ですが、メール本文が第三者に読み取られる心配がない。セキュリティは高いものの運用が複雑となる。
- S/MINEではなく、PGPが利用される場合もある。PGPの場合、S/MINEよりも実装/導入が容易である。
参考:【図解】OpenPGPとS/MIMEの仕組みと違い ~メール暗号化と署名,ssl/tlsとの違い~ | SEの道標
7章 メーリングリストとメールマガジン
- メーリングリストの管理者は適切に運用されているか確認するために、「メンバー追加・削除」、「コンテンツのモニタリング」、「更新の管理」を定期的に実施する必要がある
- メールマガジンを配信したい時には、クラウド型サービスを使用することが主流。
- これらのメールを大量に配信する場合には、希望する受信者にのみ配信するよう特定電子メール法で規制されている。
- オプトイン:利用者が明示的にメールの受信を希望する行為
- オプトアウト:利用者がメールを受信した時に、今後のメールの受信を停止するよう希望する行為
さいごに
今回は「実務で使える メール技術の教科書」の概要を簡単にまとめてみました! 本書を読んだ目的として、以下を挙げていました。
- 日頃、 Amazon SES をよく利用しているが、メール技術の基本について押さえておく必要があると感じたため。
なんとなくわかっていたつもりだったメール技術に対して、自分のなかで腹落ちでき、理解が深まりました。
またメールサーバでは大変な設定もAmazon SESはいい感じにやってくれているんだなと感じ、より好き度が増しました。
気になった方はぜひ本書を手に取ってみてください!
最後までお読みいただきありがとうございました!
どなたかのお役に立てれば幸いです。
以上、おつまみ(@AWS11077)でした!