You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
84 lines
2.2 KiB
7 months ago
|
# https://www.fastmail.help/hc/en-us/articles/1500000280261-Setting-up-your-domain-MX-only#domain-registration
|
||
|
#
|
||
|
terraform {
|
||
|
required_providers {
|
||
|
linode = {
|
||
|
source = "linode/linode"
|
||
|
version = "2.18.0"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
variable "domain" {
|
||
|
type = object({
|
||
|
id = string,
|
||
|
domain = string,
|
||
|
})
|
||
|
nullable = false
|
||
|
}
|
||
|
|
||
|
resource "linode_domain_record" "fastmail_mx" {
|
||
|
domain_id = var.domain.id
|
||
|
|
||
|
for_each = {
|
||
|
"in1-smtp.messagingengine.com" = 10
|
||
|
"in2-smtp.messagingengine.com" = 20
|
||
|
}
|
||
|
|
||
|
record_type = "MX"
|
||
|
priority = each.value
|
||
|
target = each.key
|
||
|
}
|
||
|
|
||
|
resource "linode_domain_record" "fastmail_spf" {
|
||
|
domain_id = var.domain.id
|
||
|
|
||
|
name = var.domain.domain
|
||
|
record_type = "TXT"
|
||
|
target = "v=spf1 include:spf.messagingengine.com ?all"
|
||
|
}
|
||
|
|
||
|
resource "linode_domain_record" "fastmail_dkim" {
|
||
|
domain_id = var.domain.id
|
||
|
|
||
|
for_each = {
|
||
|
"mesmtp._domainkey" = "mesmtp.${var.domain.domain}.dkim.fmhosted.com"
|
||
|
"fm1._domainkey" = "fm1.${var.domain.domain}.dkim.fmhosted.com"
|
||
|
"fm2._domainkey" = "fm2.${var.domain.domain}.dkim.fmhosted.com"
|
||
|
"fm3._domainkey" = "fm3.${var.domain.domain}.dkim.fmhosted.com"
|
||
|
}
|
||
|
|
||
|
name = each.key
|
||
|
record_type = "CNAME"
|
||
|
target = each.value
|
||
|
}
|
||
|
|
||
|
resource "linode_domain_record" "fastmail_dmarc" {
|
||
|
domain_id = var.domain.id
|
||
|
|
||
|
name = "_dmarc.${var.domain.domain}"
|
||
|
record_type = "TXT"
|
||
|
target = "v=DMARC1; p=none;"
|
||
|
}
|
||
|
|
||
|
resource "linode_domain_record" "fastmail_srv" {
|
||
|
domain_id = var.domain.id
|
||
|
|
||
|
for_each = {
|
||
|
"submission" = { priority = 0, weight = 1, port = 587, target = "smtp.fastmail.com" }
|
||
|
"imap" = { priority = 0, weight = 0, port = 0, target = "." }
|
||
|
"imaps" = { priority = 0, weight = 1, port = 993, target = "imap.fastmail.com" }
|
||
|
"pop3" = { priority = 0, weight = 0, port = 0, target = "." }
|
||
|
"pop3s" = { priority = 10, weight = 1, port = 995, target = "pop.fastmail.com" }
|
||
|
"jmap" = { priority = 0, weight = 1, port = 443, target = "api.fastmail.com" }
|
||
|
}
|
||
|
|
||
|
service = each.key
|
||
|
record_type = "SRV"
|
||
|
priority = each.value.priority
|
||
|
protocol = "tcp"
|
||
|
weight = each.value.weight
|
||
|
port = each.value.port
|
||
|
target = each.value.target
|
||
|
}
|