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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
waneal
February 28, 2021
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
I completely understood email
waneal
February 28, 2021
More Decks by waneal
See All by waneal
Migrating Rails Applications from EC2 to ECS
waneal
0
130
Other Decks in Technology
See All in Technology
「コーディング」しない人のための Claude Code 入門 ChatGPT の次の一歩 — 業務に組み込む 育成・共有・自動化
rfdnxbro
2
1.2k
MIERUNE JCT 発表資料「宇宙から伊能忠敬ごっこ」
syuchimu
0
190
関西に縁あるMicrosoft MVPsが語るCopilotの未来
kasada
0
1.2k
EventBridge Connection
_kensh
5
660
サイバーセキュリティ概論 / Introduction to Cybersecurity
ks91
PRO
0
170
OCI Oracle AI Database Services新機能アップデート(2026/03-2026/05)
oracle4engineer
PRO
0
290
AIを「創る」と「使う」の循環 — HRテックが実践するリアルなAI組織実装
taketo957
0
1.7k
AgentGatewayを試してみたかった
tkikuchi
0
120
AI Testing Talks: Challenges of Applying AI in Software Testing: From Hype to Practical Use
exactpro
PRO
1
140
Mastering Ruby Box
tagomoris
3
150
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
850
Agentic Web
dynamis
1
180
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Skip the Path - Find Your Career Trail
mkilby
1
140
GraphQLとの向き合い方2022年版
quramy
50
15k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Visualization
eitanlees
152
17k
Deep Space Network (abreviated)
tonyrice
0
170
Building the Perfect Custom Keyboard
takai
2
790
Build your cross-platform service in a week with App Engine
jlugia
234
18k
HDC tutorial
michielstock
2
690
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
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 -