-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmain.tf
89 lines (72 loc) · 2.5 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#####
# Domain Verification
#####
resource "aws_ses_domain_identity" "main" {
domain = data.aws_route53_zone.domain.name
}
resource "aws_ses_domain_identity_verification" "verification" {
count = var.enable_verification ? 1 : 0
domain = aws_ses_domain_identity.main.id
depends_on = [aws_route53_record.amazonses_verification_record]
}
resource "aws_route53_record" "amazonses_verification_record" {
count = var.enable_verification_record ? 1 : 0
zone_id = var.zone_id
name = "_amazonses.${aws_ses_domain_identity.main.domain}"
type = "TXT"
ttl = "600"
records = concat([aws_ses_domain_identity.main.verification_token], var.additional_verification_tokens)
}
#####
# MAIL FROM Domain
#####
resource "aws_ses_domain_mail_from" "main" {
domain = aws_ses_domain_identity.main.domain
mail_from_domain = "bounce.${aws_ses_domain_identity.main.domain}"
}
resource "aws_route53_record" "spf_mail_from" {
count = var.enable_spf_record ? 1 : 0
zone_id = var.zone_id
name = aws_ses_domain_mail_from.main.mail_from_domain
type = "TXT"
ttl = "600"
records = [var.spf_txt_record]
}
resource "aws_route53_record" "spf_domain" {
count = var.enable_spf_record ? 1 : 0
zone_id = var.zone_id
name = data.aws_route53_zone.domain.name
type = "TXT"
ttl = "600"
records = [var.spf_txt_record]
}
resource "aws_route53_record" "ses_domain_mail_from_mx" {
count = var.enable_from_domain_record ? 1 : 0
zone_id = var.zone_id
name = aws_ses_domain_mail_from.main.mail_from_domain
type = "MX"
ttl = "600"
records = concat(["10 feedback-smtp.${data.aws_region.current.name}.amazonses.com"], var.additional_mail_from_records)
}
resource "aws_route53_record" "mx_receive" {
count = var.enable_incoming_email_record ? 1 : 0
name = data.aws_route53_zone.domain.name
zone_id = var.zone_id
type = "MX"
ttl = "600"
records = concat(["10 inbound-smtp.${data.aws_region.current.name}.amazonaws.com"], var.additional_incoming_email_records)
}
#####
# DKIM Verification
#####
resource "aws_ses_domain_dkim" "main" {
domain = aws_ses_domain_identity.main.domain
}
resource "aws_route53_record" "ses_dkim_record" {
count = var.enable_dkim_record ? 3 : 0
zone_id = var.zone_id
name = "${element(aws_ses_domain_dkim.main.dkim_tokens, count.index)}._domainkey.${aws_ses_domain_identity.main.domain}"
type = "CNAME"
ttl = "600"
records = ["${element(aws_ses_domain_dkim.main.dkim_tokens, count.index)}.dkim.amazonses.com"]
}