MXレコード
Mail Exchange Record
メールを受信する メールサーバのホスト名 を指定。優先度も持つ。 e.g. example.com → mail.example.com (priority 10)
MX レコードは 2 つの値を持つ
priority(優先度)
小さいほど優先
複数定義したときの順序
host(ホスト名)
IPではなくドメイン名
例: example.com の MX レコード
code:_
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.
こういう意味
@example.com 宛のメールはまず mail1.example.com に届けて、
(priority 10の方が小さいので)
ダメだったら mail2.example.com に届けてください
メール送信時にMXがどう使われるか
alice@sender.com から bob@example.com にメールを送るとき、sender.com 側のメール送信プロセス(MTA、後述)はおおむねこう動く:
1. 宛先 bob@example.com の @以降を取り出す → example.com
2. DNS に「example.com の MX を教えて」と問い合わせる
3. 戻ってきたホスト名 mail1.example.com のAレコードを引いて IP を得る 4. その IP に SMTPで接続して、メールを渡す このステップ 2 と 3 が分かれているのがポイント
MX で得るのは ホスト名(さらにDNSを引かないとIPにならない)
code:tf(rb)
# Google Workspace の例(優先度が小さいほど優先)
resource "aws_route53_record" "mx" {
zone_id = aws_route53_zone.this.zone_id
name = "example.com"
type = "MX"
ttl = 3600
records = [
"1 aspmx.l.google.com",
"5 alt1.aspmx.l.google.com",
"5 alt2.aspmx.l.google.com",
"10 alt3.aspmx.l.google.com",
"10 alt4.aspmx.l.google.com",
]
}
値は "優先度 ホスト名" の文字列
メール運用しないなら不要