@@ -25,7 +25,7 @@ var logger = log.Logger{
2525func (d * Domain ) getCNAMERecords () string {
2626 cname , err := net .LookupCNAME (d .Name )
2727 if err != nil {
28- logger .Errorf ("Error looking up CNAME for %s: %s" , d .Name , err )
28+ logger .Errorf ("error looking up CNAME for %s: %s" , d .Name , err )
2929 return ""
3030 }
3131 return cname
@@ -42,14 +42,18 @@ func (d *Domain) Check() bool {
4242}
4343
4444func checkDNSTarget (domain Domain , ses SES ) {
45- logger .Infof ("Checking %s" , domain .Name )
45+ logger .Infof ("checking %s" , domain .Name )
4646 if ! domain .Check () {
47- //@todo send email with aws ses
4847 logger .Errorf ("%s is not pointing to %s" , domain .Name , domain .Target )
49- sendEmail (domain , ses )
48+ sendEmail (Subject ( domain , ses ), HtmlBody ( domain , ses ), TextBody ( domain , ses ) , ses )
5049 }
5150}
5251
52+ func errorEmail (ses SES , err error ) {
53+ errorMessage := fmt .Sprintf ("Error in DNS Check(%s)" , err .Error ())
54+ sendEmail (errorMessage , errorMessage , errorMessage , ses )
55+ }
56+
5357const (
5458 CharSet = "UTF-8"
5559)
@@ -64,19 +68,20 @@ func TextBody(d Domain, ses SES) string {
6468 return fmt .Sprintf (ses .Body , d .Name )
6569}
6670
67- func sendEmail (d Domain , sesc SES ) {
71+ func sendEmail (subject , htmlBody , body string , s SES ) {
6872 sess , err := session .NewSession (& aws.Config {
69- Region : aws .String (sesc .Region )},
73+ Region : aws .String (s .Region )},
7074 )
7175 if err != nil {
72- logger .Errorf ("Error creating session: %s" , err )
76+ logger .Errorf ("error creating session: %s" , err )
77+ errorEmail (s , err )
7378 return
7479 }
7580
7681 svc := ses .New (sess , & aws.Config {
7782 Credentials : credentials .NewStaticCredentials (
78- sesc .AccessKey ,
79- sesc .SecretKey ,
83+ s .AccessKey ,
84+ s .SecretKey ,
8085 "" ,
8186 ),
8287 })
@@ -85,26 +90,26 @@ func sendEmail(d Domain, sesc SES) {
8590 Destination : & ses.Destination {
8691 CcAddresses : []* string {},
8792 ToAddresses : []* string {
88- aws .String (sesc .Recipient ),
93+ aws .String (s .Recipient ),
8994 },
9095 },
9196 Message : & ses.Message {
9297 Body : & ses.Body {
9398 Html : & ses.Content {
9499 Charset : aws .String (CharSet ),
95- Data : aws .String (HtmlBody ( d , sesc ) ),
100+ Data : aws .String (htmlBody ),
96101 },
97102 Text : & ses.Content {
98103 Charset : aws .String (CharSet ),
99- Data : aws .String (TextBody ( d , sesc ) ),
104+ Data : aws .String (body ),
100105 },
101106 },
102107 Subject : & ses.Content {
103108 Charset : aws .String (CharSet ),
104- Data : aws .String (Subject ( d , sesc ) ),
109+ Data : aws .String (subject ),
105110 },
106111 },
107- Source : aws .String (sesc .Sender ),
112+ Source : aws .String (s .Sender ),
108113 }
109114 result , err := svc .SendEmail (input )
110115
@@ -123,8 +128,9 @@ func sendEmail(d Domain, sesc SES) {
123128 } else {
124129 logger .Println (err .Error ())
125130 }
131+ errorEmail (s , err )
126132 return
127133 }
128- logger .Println ("Email Sent to address: " + sesc .Recipient )
134+ logger .Println ("email sent to address: " + s .Recipient )
129135 logger .Println (result .MessageId )
130136}
0 commit comments