Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
I completely understood email
Search
waneal
February 28, 2021
Technology
0
330
I completely understood email
waneal
February 28, 2021
Tweet
Share
More Decks by waneal
See All by waneal
Migrating Rails Applications from EC2 to ECS
waneal
0
110
Other Decks in Technology
See All in Technology
【あのMCPって、どんな処理してるの?】 AWS CDKでの開発で便利なAWS MCP Servers特集
yoshimi0227
6
950
Four Keysから始める信頼性の改善 - SRE NEXT 2025
ozakikota
0
410
An introduction to Claude Code SDK
choplin
2
1k
How to Quickly Call American Airlines®️ U.S. Customer Care : Full Guide
flyaahelpguide
0
240
LIXIL基幹システム刷新に立ち向かう技術的アプローチについて
tsukuha
1
380
ソフトウェアテストのAI活用_ver1.25
fumisuke
1
610
TLSから見るSREの未来
atpons
2
310
Amazon SNSサブスクリプションの誤解除を防ぐ
y_sakata
3
190
CDK Vibe Coding Fes
tomoki10
1
630
20250708オープンエンドな探索と知識発見
sakana_ai
PRO
4
1k
microCMSではじめるAIライティング
himaratsu
0
150
United™️ Airlines®️ Customer®️ USA Contact Numbers: Complete 2025 Support Guide
flyunitedguide
0
800
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Music & Morning Musume
bryan
46
6.7k
Unsuck your backbone
ammeep
671
58k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.7k
Writing Fast Ruby
sferik
628
62k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
The Cult of Friendly URLs
andyhume
79
6.5k
Facilitating Awesome Meetings
lara
54
6.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.6k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Six Lessons from altMBA
skipperchong
28
3.9k
Agile that works and the tools we love
rasmusluckow
329
21k
Transcript
メール完全に理解した 2021/02/20
自己紹介 - waneal - @noobs_waneal - インフラエンジニアやっております - AWS/GCPで動くシステムのお世話 -
Go、Python、コンテナ技術に興味あります - 趣味 - TVゲーム - ApexとかValheimとかとか - バスケットボール - サンアントニオスパーズが好きです - 山登り・キャンプ - 最近できてないですが。。
アジェンダ - メールが届くしくみ - メールプロトコルのしくみ - メールの中身
メールってどういう仕組で届く?
メールが届くまでのイメージ Aさん メールクライアント SMTPサーバ SMTPサーバ Bさん メールクライアント Bさんへ 届けろ OK釈迦地蔵
メールが届くまでのイメージ SMTPサーバ SMTPサーバ SMTP Bさんへ 届けろ 受け取った Aさん メールクライアント Bさん
メールクライアント
メールが届くまでのイメージ SMTPサーバ SMTPサーバ 私宛のメー ルをよこせ POP3/IMAP OK 釈迦地蔵 Aさん メールクライアント
Bさん メールクライアント
メールプロトコルはどういう仕組?
POP3、IMAP - POP Version 3 - POP = Post Office
Protocol - メールサーバに届いているメールを自分のコンピュータに取り込む - 一度取り込まれたメールはメールサーバから削除される(設定にもよるけど) - IMAP - Internet Message Access Protocol - メールサーバのメールをそのまま読み込み、管理する 今回は範囲外
SMTP - Simple Mail Transfer Protocol - メール転送プロトコル - クライアント
- サーバモデル - ステートフル https://datatracker.ietf.org/doc/rfc5321/?include_text=1
SMTPの流れ https://www.afternerd.com/blog/smtp/
SMTPコマンド - EHLO - セッションの開始、クライアントが利用できる拡張機能の要求 - MAIL - MAIL FROM:<reverse-path>
[SP <mail-parameters> ] <CRLF> - reverse-pathはエラー報告の通知に利用するパス - Mailer Daemonの送信先 - RCPT - RCPT TO:<forward-path> [ SP <rcpt-parameters> ] <CRLF> - 宛先メールアドレスを指定 - 何度でも繰り返し可能。複数の宛先を指定できる - DATA - DATA <CRLF> - メールデータの送信
メールってどういう中身になってる?
メールオブジェクト - メールオブジェクトはエンベロープとコンテンツで構成される - エンベロープ - 送信元アドレス - 1つ以上の転送先アドレス -
オプション - コンテンツ - ヘッダーセクション - ボディ
The Origination Date Field - orig-date - 作成者がメッセージを作成完了し、メール転送準備が整ったとき。
Originator Fields - from - 送信元 - sender - Fromに複数のメールボックス情報が含まれている場合、
Senderに単一のメールボックス情報が含 まれる - 作成者と送信者が異なる場合、 Senderに送信者が入る - reply-to - 返信時に送信すべき宛先。なければ Fromに対して送信される
Destination Address Field - to - 送信先 - cc -
送信先 - carbon copyの略 - bcc - 送信先 - blind carbon copyの略 - to, ccのメールアドレスに送るときは削除され、 bccのアドレスに送信するときはそのまま残る - bccアドレスの扱い方は実装によって異なる
Identification Fields - message-id - 特定のバージョンの特定のメッセージを特定できる一意な識別子。一意であることは生成するホス トで保証する - 生成方法はいくつかあるが以下を推奨 -
"絶対日時とその他にユニークな何かの組み合わせ @ドメイン名、もしくはIPアドレス" - in-reply-to - 全てのReplyメッセージに必要。親メッセージに message-idが含まれる - 新しいメッセージの場合、 in-reply-toフィールドが存在しない - references - in-reply-toに保存されているmessage-idの蓄積 - スレッド機能はこれを参考にしていると思われる
Trace Fields - trace - 1つ以上のreturn(Return-Path) - SMTPで送信元アドレスとして指定されたもの - SMTPの世界が終わると、エンベロープのデータは消えるため
Informational Fields、Resent Fields、Optional Fields comming soon...
まだわかってないところ - SMTPの拡張プロトコル - MIME - 実際にSMTPプロトコルを使ってメールを送る
参考資料 - https://tex2e.github.io/rfc-translater/html/rfc5322.html - https://tex2e.github.io/rfc-translater/html/rfc5321.html - https://www.geekpage.jp/technology/ip-base/mail-2.php - https://www.youtube.com/watch?v=RdNErie6dKU -