This is the main dovel repository, it has the Go code to run dovel SMTP server.
Author: bmayer3 (bmayer@sibros.tech)
Date: Thu Mar 16 17:10:09 2023 -0300
Parent: 7d817ed
Fixed saving email
commit 648b63c0964193005be8d63f5bbe0e23666812b4 Author: bmayer3 <bmayer@sibros.tech> Date: Thu Mar 16 17:10:09 2023 -0300 Fixed saving email diff --git a/interfaces/backend/backend.go b/interfaces/backend/backend.go index 6dd9d7c..6348a25 100644 --- a/interfaces/backend/backend.go +++ b/interfaces/backend/backend.go @@ -58,6 +58,7 @@ func (s Session) Data(r io.Reader) error { // get user from to field mail := interfaces.ToEmail(email) + mail.Raw = content for _, to := range mail.To { userDomain := strings.Split(to, "@") handler, ok := s.handlers[userDomain[1]] @@ -179,6 +180,7 @@ func (b Backend) SendHandler(saveFunction config.Handler) http.HandlerFunc { println("failed to sign body:", err.Error()) } email.Body = payload.String() + email.Raw = []byte(email.Body) // dns mx for email for _, to := range email.To { @@ -201,7 +203,7 @@ func (b Backend) SendHandler(saveFunction config.Handler) http.HandlerFunc { nil, email.From, []string{to}, - bytes.NewReader([]byte(email.Body)), + bytes.NewReader(email.Raw), ) if err != nil { println("sendMail error: " + err.Error())
commit 648b63c0964193005be8d63f5bbe0e23666812b4 Author: bmayer3 <bmayer@sibros.tech> Date: Thu Mar 16 17:10:09 2023 -0300 Fixed saving email diff --git a/interfaces/file/file.go b/interfaces/file/file.go index 50d33b4..0f3579f 100644 --- a/interfaces/file/file.go +++ b/interfaces/file/file.go @@ -105,7 +105,7 @@ func (f FileHandler) Save(email interfaces.Email) error { } defer file.Close() - _, err = file.Write([]byte(email.Body)) + _, err = file.Write(email.Raw) if err != nil { println("file write", err.Error()) return err @@ -125,7 +125,7 @@ func (f FileHandler) SaveSent(email interfaces.Email) error { } defer file.Close() - _, err = file.Write([]byte(email.Body)) + _, err = file.Write(email.Raw) if err != nil { println("file write", err.Error()) return err
commit 648b63c0964193005be8d63f5bbe0e23666812b4 Author: bmayer3 <bmayer@sibros.tech> Date: Thu Mar 16 17:10:09 2023 -0300 Fixed saving email diff --git a/interfaces/gwi/gwi.go b/interfaces/gwi/gwi.go index 8966409..cc98d1d 100644 --- a/interfaces/gwi/gwi.go +++ b/interfaces/gwi/gwi.go @@ -54,7 +54,7 @@ func (g GWIConfig) GwiEmailHandler(email interfaces.Email) error { } defer mailFile.Close() - _, err = mailFile.Write([]byte(email.Body)) + _, err = mailFile.Write(email.Raw) if err != nil { println("write mail file", err.Error()) return err
commit 648b63c0964193005be8d63f5bbe0e23666812b4 Author: bmayer3 <bmayer@sibros.tech> Date: Thu Mar 16 17:10:09 2023 -0300 Fixed saving email diff --git a/interfaces/main.go b/interfaces/main.go index d636343..5f56421 100644 --- a/interfaces/main.go +++ b/interfaces/main.go @@ -53,6 +53,7 @@ type Email struct { Subject string Body string Attachments map[string]Attachment + Raw []byte } func ToEmail(mail parsemail.Email) Email {