Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
古い技術について—SMTP現代事情つまみ食い—
Search
azumakuniyuki
February 10, 2024
Technology
11k
33
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
古い技術について—SMTP現代事情つまみ食い—
YAPC::Hiroshima 2024
azumakuniyuki
February 10, 2024
More Decks by azumakuniyuki
See All by azumakuniyuki
SMTP RELIABILITY ENGNEERING
azumakuniyuki
1
2.1k
Other Decks in Technology
See All in Technology
Azure Serverless 2026:Production-ready な AI エージェント基盤 / Azure Serverless 2026: Production-Ready AI Agent Platform
miyake
2
500
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
640
アプリログインとWeb認証基盤をつなぐ ASWebAuthenticationSession 作法
shimastripe
1
370
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
5
640
AI時代、データエンジニアが一番おもろい
genshun9
0
680
人間はどの意思決定を手放せるのか
kawasima
15
7.9k
Deployment の 先にある AI Agent 基盤 - kagent vNext、Agent Substrate、Hermes から読み解く Agent Runtime の現在地 / k8s-matsuri-2-ai-agent-platform-amsy810
masayaaoyama
4
700
AIエージェントの権限管理 3: Agentic RAG の Fine grained access control 編
ren8k
0
190
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
2
1k
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
270
「どのログを見ればいい?」 から始めた サーバーレス障害解析
y_waka1
1
120
SREへの勘違いに気づいた後の話
tomodakengo
0
130
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
530
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
We Have a Design System, Now What?
morganepeng
55
8.3k
Into the Great Unknown - MozCon
thekraken
41
2.7k
Fireside Chat
paigeccino
43
4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
A better future with KSS
kneath
240
18k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Skip the Path - Find Your Career Trail
mkilby
1
240
Building an army of robots
kneath
307
46k
Transcript
@azumakuniyuki YAPC::Hiroshima2024 | 02/10(土) 広島国際会議場さん 古い技術について SMTP 代 情 現
事 つまみ食い
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki YAPC::Hiroshima 2024 | 02/10(土)
広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 自己紹介 @azumakuniyuki Cubicroot Co. Ltd. 2 libsisimai.org nyaan.jp
ネコ紹介 3 道綱 「ニャーン」 YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki
古い技術について SMTP 代 情 現 事 つまみ食い
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 5 SMTP(RFC821) 1982/08 SMTP(RFC2821)
2001/04 SMTP(RFC5321) 2008/10 STARTTLS(RFC2487) 1999/01 SPF(RFC4408) 2006/04 DKIM(RFC4871) 2007/05 ARC(RFC8617) 2019/07 DMARC(RFC7489) 2015/03 List-Unsubscribe(RFC8058) 2017/01 BIMI(DRAFT) 2019/08 SMTPUTF8(RFC5336) 2008/09 2000 2020 1980 2010 1990 MTA-STS(RFC8461) 2018/09 TLS-RPT(RFC8460) 2018/09 RRVS(RFC7293) 2014/07 DANE(RFC6698) 2012/08 NullMX(RFC7505) 2015/06 HTTP/1.0(RFC1945) 1996/05 IDとしての側面が強くなる傾向 Sendmail(1983) Postfix(1998) Exim(1995) Courier(2000) qmail(1998) OpenSMTPD(2013)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 6 SMTP(42) /MA(?:IL|LE)/ RFC821
Aug. 1982
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 7 SMTP(42) /MA(?:IL|LE)/ RFC821
Aug. 1982 厄 年
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 8 Envelope Header エンベロープ
ヘッダー と
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 9 Envelope (?:From|To) *
SMTPの通信における送信者と受信者 * $ telnet mx.example.jp 25⏎ * MAIL FROM: <このメールアドレス> = 送信者 * RCPT TO: <このメールアドレス> = 受信者 * /var/log/maillogに現れるメールアドレス * from=<
[email protected]
>, … * to=<
[email protected]
>, … エンベロープ
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 10 Header (?:From|To): *
メールのヘッダーに書かれているメールアドレス * 送信者 = From: “雉虎” <
[email protected]
> * 受信者 = To: “道綱” <
[email protected]
> * MUAで表示される「差出人」と「宛先」 * アプリによっては”From: 雉虎”しか出ないかも * “From:”は必須ヘッダー(RFC5322) * “To: undisclosed-recipients:;”ってのもある ヘッダー
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 11 Envelope エンベロープ In
Email Headers Return-Path: <
[email protected]
> Received: from mx (m.example.com [192.0.2.1]) with ESMTPS id 4Tx3c… for <
[email protected]
>; Thu, 2 Feb Envelope-From Envelope-To
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 12 Domain Auth. SPF,
DKIM, DMARC, ARC, BIMI
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 13 SPF, DKIM Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: キジトラ <
[email protected]
> Subject: ニャーン 集会のお知らせですニャン SPF DKIM Sender Policy Framework DomainKeys Identified Mail
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 14 DMARC(alignment) Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: キジトラ <
[email protected]
> Subject: ニャーン 集会のお知らせですニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 15 DMARC 1. DMARC認証失敗時のメール処理方法を指示
* p=(?:reject|quarantine|none) 2. レポート(*.xml.gz)が来る 3. From:ヘッダーのドメインを認証する Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 16 DMARC=FAIL Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: アマゾン <
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 17 DMARC=FAIL Return-Path: <
[email protected]
>
Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: アマゾン <
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance 不一致 不一致
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 18 _dmarc.amazon.com $ dig
-4 TXT _dmarc.amazon.com “v=DMARC1; p=quarantine; …”
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 19 DMARC=PASS !? Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: 【アマゾン】
[email protected]
<
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 20 DMARC=PASS !? Return-Path:
<
[email protected]
> Received: from mx2 (mx.example.com [192.0.2.25]) … DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/ d=example.com; s=neko22; h=Date:From:To:Subject; Date: 2 Feb 2018 18:30:22 +0900 To: 道綱 <
[email protected]
> From: 【アマゾン】
[email protected]
<
[email protected]
> Subject: ネコ缶(鯛味)モニター当選のお知らせですニャン 当選したネコ缶は二条城まで受け取りに来てくださいニャン SPF DKIM DMARC SPFアライメント DKIMアライメント Domain-based Message Authentication, Reporting and Conformance これ„
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 21 BIMI iPhoneではメールアドレスが出ない BIMIなどに関する説明ページが開く
Brand Indicators for Message Identification
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 22 BIMI $ dig
-4 TXT default._bimi.amazon.com⏎ "v=BIMI1; l=https://d3***_logo.svg; ロゴ画像 a=https://d3f***4.pem” 証明書(VMC) ↑まぁまぁ高い(〜30万円とか) EVと同じく組織の実在証明とか要る ↓商標登録されている必要あり Brand Indicators for Message Identification
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 23 Email Forwarding @EXAMPLE.COM
192.0.2.25 配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp. IN TXT “v=spf1 ip4:203.0113.2 -all” EHLO mx.nyaan.jp MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> DKIM-Signature: …; d=exmaple.com; … Reply-To: 近所ネコML <
[email protected]
> 集会ですニャン spf=fail dkim=fail REJECT
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 24 SRS @EXAMPLE.COM 192.0.2.25
配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp. IN TXT “v=spf1 ip4:203.0113.2 -all” EHLO mx.nyaan.jp MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> DKIM-Signature: …; d=example.com; … Reply-To: 近所ネコML <
[email protected]
> 集会ですニャン spf=pass dkim=fail Envelope Fromを 転送元ドメインに 書き換える Sender Rewriting Scheme
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 25 ARC @EXAMPLE.COM 192.0.2.25
配信サーバー @NYAAN.JP 203.0.113.2 @GMAIL.COM example.com. IN TXT “v=spf1 ip4:192.0.2.0/24 -all” nyaan.jp IN TXT “v=spf1 ip4:203.0113.2 -all” MAIL FROM: <
[email protected]
> RCPT TO: <
[email protected]
> DATA ARC-Authentication-Results: i=1; mx.n… spf=pass; dkim=pass; dmarc=pass; … ARC-Message-Signature: i=1; d=nyaan.jp; ARC-Seal: i=1; d=nyaan.jp; s=neko22; … DKIM-Signature: …; d=example.com; … Subject: [neko-ml:0022] 集会のお知らせ From: キジトラ <
[email protected]
> To: 道綱 <
[email protected]
> spf=fail dkim=fail arc=pass 「うちのサーバーで受け 取った段階ではSPFも DKIMもDMARCも全て PASSでしたよ」 「ARCのとこに書 いておきますので 確認してね」 Authenticated Received Chain
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 26 Domain Protection SPF,DKIM,DMARC,NullMX
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 27 SPF/Shadow MTA #
grep ‘from=<‘ /var/log/maillog⏎ …, from=<
[email protected]
>, …, to=<
[email protected]
>, … …, from=<
[email protected]
>, … …, from=<admin@www5>, … Webサーバーが勝手に 直接メールを外部に 送ってるやん!? www5.example.jp. IN TXT “v=spf1; +a:www5 …” www5用の SPFが必要 FQDNになっ てませんなぁ
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 28 SPF/NullMX $ dig
-4 TXT libsisimai.org “v=spf1 -all” $ dig -4 MX libsisimai.org 0 . メールは 送らない MXの優先度は0, ホスト名は”.”のみ メールは 受け取らない
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 29 SPF/Hard Fail (-all)
- “v=spf1 +mx +ip4:192.0.2.0/24 ~all” + “v=spf1 +mx +ip4:192.0.2.0/24 -all” DMARC導入でメールの出所は全て把握するし やれるはず
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 30 Encryption STARTTLS, MTA-STS,
TLS-PRT
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 31 STARTTLS @NYAAN.JP 203.0.113.2
@GMAIL.COM EHLO mx.nyaan.jp ⏎ … 250-STARTTLS … STARTTLS ⏎ 220 2.0.0 Ready to start TLS MAIL FROM: <
[email protected]
> ⏎ RCPT TO: <
[email protected]
> ⏎ DATA … よし 話せ 盗聴防止を 「暗号回線に切り替えてくれ」「よし」
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki mjl-/mox (Go) stalwartlabs/mail-server (Rust)
Sendmail 8.17.1 (Experimental) Postfix + mta-sts-resolver $smtp_tls_policy_maps version: STSv1 mode: enforce mx: gmail-smtp-in.l.google.com mx: *.gmail-smtp-in.l.google.com max_age: 86400 32 MTA-STS, TLS-RPT @NYAAN.JP 203.0.113.2 @GMAIL.COM _mta-sts.gmail.com. IN TXT "v=STSv1; id=20190429T010101;" GET https://mta-sts.gmail.com/.well-known/mta-sts.txt Gmail「うちは MTA-STSを使っ てるで」 MTA-STSの ポリシー確認 するか! うちとこTLS 1.2 以上でSTARTTLS が必須やねんわ STARTTLS 証明書ちゃん と見てな? STARTTLSの強制とレポート _smtp._tls.gmail.com. IN TXT "v=TLSRPTv1;rua=mailto:…” アカンかったらレ ポート送ってな? SMTP MTA Strict Transport Security SMTP TLS Reporting
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 33 Delivery Reputation, List-Unsubscribe
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 34 Relay Service ?
* 自前サーバー OR 配信サービスか * 月間配信数と費用しだい(要見積) * 月に5000万通とか1億通とか送るなら自前 * 4コアCPU+8GBメモリ x 2台ぐらいで行ける * 二者択一ではない * 宛先次第で配信サービスに投げるとか * $fallback_relay =
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 35 Reputation * 送信者ドメインとIPアドレスの評判
* Postmaster Tools, Microsoft SNDS * CISCO TALOS, SenderScore(30日分ある) * だいたい3段階か4段階(悪・低・中・高) * もちろん従来のDNSBLも気にする必要あり * SMTP的な日ごろの行い * Googleのガイドラインを各社が採用(たぶん)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 36 List-Unsubscribe: レピュテーションが高い状態でのみでる(らしい)
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 37 Warming-Up @NYAAN.JP 203.0.113.2
@GMAIL.COM DAY1: 100通 DAY2: 120通 DAY3: 150通 DAY30: 2000通 大量配信実績のないIPアドレスとドメイン Postmaster Toolsで毎日 確認 Microsoft宛 ならSNDS Outlook Postmaster
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 38 Warming-Up @NYAAN.JP 203.0.113.2
@GMAIL.COM DAY1: 100本 DAY2: 120本 DAY3: 150本 DAY30: 2000本 商取引と考える・コツコツやる ネギ 買って! いきなり来た 初日で2000本 も!? 今日は100 本だけやな 2000本!
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 39 お好み What you
like
YAPC::Hiroshima 2024 | 02/10(土) 広島国際会議場さん 古い技術について—SMTP現代事情つまみ食い—@azumakuniyuki 40 「SMTPは好き?」 「ほどほどでございます」
終