naopoyo.com
  • Docs
  • Tags
  • Bookmarks
  • Tools
  • About
  • Docs
  • Tags
  • Bookmarks
  • Tools
  • About

目次

© naopoyo

✉️

メールの設定について(SPF、DKIM、DMARC)

公開日
1年以上前
2024-06-28
更新日
1年以上前
2024-07-11
更新履歴
GitHubで見る
  • Terraform
  • メール
  • AWS

この記事について

メールに関する技術であるSPF、DKIM、DMARCについて整理した記事です。

SPFとは

SPFとはなりすましメールを防止するため、電子メールの送信元を認証するための技術です。

DKIMとは

DKIMとは、電子メールの送信元ドメインを認証し、メッセージが改ざんされていないことを確認する技術です。

DMARCとは

DMARCとは、フィッシング、スパム、なりすましメールなどの不正メールを防止するための技術です。SPFやDKIMと組み合わせて、送信元ドメインの認証を強化します。

DNSレコードの例

以下はそれぞの技術のDNSレコードの例です。

SPFレコード

example.com. IN TXT "v=spf1 ip4:127.0.0.1 -all"

ドメイン名(example.com)、IPアドレス(127.0.0.1)の部分は任意の値に置き換えます。

タグ名説明例
vバージョンv=spf1
ip4許可されたIPアドレス範囲ip4:127.0.0.1
allすべての受信メールが照合されることを指定-all

DKIMレコード

SELECTOR._domainkey.example.com. IN TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."

セレクタ名(SELECTOR)、ドメイン名(example.com)、公開鍵(MIIBIjANBgkq...)の部分は任意の値に置き換えます。

タグ名説明例
vバージョンv=DKIM1
k鍵の種類k=rsa
p公開鍵p=MIIBIjANBgkq...

DMARCレコード

_dmarc.example.com. IN TXT "v=DMARC1;p=none;rua=mailto:dmarc@example.com"

ドメイン名(example.com)、メールアドレス(dmarc@example.com)の部分は任意の値に置き換えます。

タグ名説明例
vバージョンv=DMARC1
pポリシーp=none
rua送信先の集計レポートrua=dmarc@example.com

チェックツール

それぞれのDNSレコードを追加した後は以下のツールで正しく設定されているかチェックすることができます。

SPFチェッカー

Free SPF Record Checker - Check SPF Record - SPF Record Lookup - DMARCLY
DMARCLY - SPF Record Checker
dmarcly.com favicon
dmarcly.com

DKIMチェッカー

Free DKIM Record Checker - Check DKIM Record - DKIM Lookup - DMARCLY
DMARCLY - DKIM Checker
dmarcly.com favicon
dmarcly.com

DMARCチェッカー

Free DMARC Checker - Check DMARC Record - DMARC Lookup - DMARCLY
DMARCLY - DMARC Checker
dmarcly.com favicon
dmarcly.com

Route53にDKIMのレコードを追加するときに CharacterStringTooLong というエラーになる場合

Route53のレコード追加では255文字までの制限があるため、それ以上の文字列を設定する場合に工夫が必要です。Terraformの定義にも工夫がいるため参考になるGitHubのIssueを紹介します。

Route53 doesn't validate TXT record lengths · Issue #14941 · hashicorp/terraform-provider-aws
Community Note Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request Please do not leave "+1" or other comments that d...
github.com favicon
github.com
Route53 doesn't validate TXT record lengths · Issue #14941 · hashicorp/terraform-provider-aws

上記のIssueで紹介されていたHCLは以下です。

locals {
  dkim_record = "v=DKIM1; k=rsa; p=MIIBIjAN..."
  zone_id = "..."
  domain = "example.com"
}

resource "aws_route53_record" "this" {
  zone_id = local.zone_id
  name    = "selector._domainkey.${local.domain}"
  type    = "TXT"
  records = [
    join("\"\"", [
      substr(local.dkim_record, 0, 255),
      substr(local.dkim_record, 255, 255),
    ])
  ]
  ttl = "300"
}

Zennに詳しく解説されている記事もあります。

AWS route53にDKIMのTXTレコードを追加するとCharacterStringTooLongエラーになったので解決した
zenn.dev favicon
zenn.dev
AWS route53にDKIMのTXTレコードを追加するとCharacterStringTooLongエラーになったので解決した

もっと詳しく知りたい

以下はそれぞれの技術について詳しく解説されているWEBサイトへのリンクです。

SPF

About SPF records - Google Workspace Admin Help
An SPF record defines the mail servers and domains that are allowed to send email on behalf of your domain. Each domain can have one SPF record, but the record can specify additional servers and third
google.com favicon
google.com

DKIM

DKIMの確認方法をわかりやすく解説!初心者でもわかるDKIMの仕組みとSPF・DMARCとの違い | 【公式】ブラストエンジン(blastengine)|API連携・SMTPリレー
ビジネスの場でよく使われる連絡ツールといえば電話とメールでしょう。特にメールは手軽に使用できるコミュニケーションツールとして重要な役割を担っています。 しかし、フィッシング詐欺やマルウェア感染などのメールによる被害も後を […]
blastengine.jp favicon
blastengine.jp
DKIMの確認方法をわかりやすく解説!初心者でもわかるDKIMの仕組みとSPF・DMARCとの違い | 【公式】ブラストエンジン(blastengine)|API連携・SMTPリレー

DMARC

Set up DMARC - Google Workspace Admin Help
DMARC tells receiving email servers what action to take on messages sent from your domain that don't pass SP
google.com favicon
google.com

目次

最近更新された記事

🛟
CLIツールを作ろう
約11時間前 - 2025年10月26日
  • Node.js
  • npm
🚩
Next.js 16にアップグレードする
2日前 - 2025年10月24日
  • Next.js
🙄
開発日記-2025-10-23 / jsdom v27.0.1 にすると vitest がエラーになる
2日前 - 2025年10月24日
  • 開発日記