aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Crute <mike@crute.us>2020-11-18 10:44:09 -0800
committerGitHub <noreply@github.com>2020-11-18 10:44:09 -0800
commit7490cd3b89fcb658c1329fa7ffcbdcb75ff0c6ff (patch)
tree06482953909e71a019e2227e5c3a8aa33aae3531
parent837762f56718fab3a4d4b34f1dc0151065ed38c2 (diff)
parent4f475c98dc1a3b7f9b4c0ce783f8da52c8aebb41 (diff)
downloadses-smtpd-proxy-7490cd3b89fcb658c1329fa7ffcbdcb75ff0c6ff.tar.bz2
ses-smtpd-proxy-7490cd3b89fcb658c1329fa7ffcbdcb75ff0c6ff.tar.xz
ses-smtpd-proxy-7490cd3b89fcb658c1329fa7ffcbdcb75ff0c6ff.zip
Merge pull request #1 from thomasdupas/master
return transient error for SES api failures
-rw-r--r--main.go14
1 files changed, 7 insertions, 7 deletions
diff --git a/main.go b/main.go
index 0e1beed..5de865c 100644
--- a/main.go
+++ b/main.go
@@ -12,8 +12,8 @@ import (
12) 12)
13 13
14const ( 14const (
15 SES_SIZE_LIMIT = 10000000 15 SesSizeLimit = 10000000
16 DEFAULT_ADDR = ":2500" 16 DefaultAddr = ":2500"
17) 17)
18 18
19var sesClient *ses.SES 19var sesClient *ses.SES
@@ -38,8 +38,8 @@ func (e *Envelope) BeginData() error {
38 38
39func (e *Envelope) Write(line []byte) error { 39func (e *Envelope) Write(line []byte) error {
40 e.b.Write(line) 40 e.b.Write(line)
41 if e.b.Len() > SES_SIZE_LIMIT { // SES limitation 41 if e.b.Len() > SesSizeLimit { // SES limitation
42 log.Println("message size %d exceeds SES limit of %d", e.b.Len(), SES_SIZE_LIMIT) 42 log.Printf("message size %d exceeds SES limit of %d\n", e.b.Len(), SesSizeLimit)
43 return smtpd.SMTPError("554 5.5.1 Error: maximum message size exceeded") 43 return smtpd.SMTPError("554 5.5.1 Error: maximum message size exceeded")
44 } 44 }
45 return nil 45 return nil
@@ -62,14 +62,14 @@ func (e *Envelope) Close() error {
62 _, err := sesClient.SendRawEmail(r) 62 _, err := sesClient.SendRawEmail(r)
63 if err != nil { 63 if err != nil {
64 log.Printf("ERROR: ses: %v", err) 64 log.Printf("ERROR: ses: %v", err)
65 return smtpd.SMTPError(fmt.Sprintf("554 5.5.1 Error: %v", err)) 65 return smtpd.SMTPError(fmt.Sprintf("451 4.5.1 Temporary server error. Please try again later: %v", err))
66 } 66 }
67 return err 67 return err
68} 68}
69 69
70func main() { 70func main() {
71 sesClient = ses.New(session.New()) 71 sesClient = ses.New(session.Must(session.NewSession()))
72 addr := DEFAULT_ADDR 72 addr := DefaultAddr
73 73
74 if len(os.Args) == 2 { 74 if len(os.Args) == 2 {
75 addr = os.Args[1] 75 addr = os.Args[1]