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 {