This is the main dovel repository, it has the Go code to run dovel SMTP server.
Author: myr (brian@myr.sh)
Date: Tue Jul 2 01:20:21 2024 -0300
Parent: 150bb62
Updated x flag Improved logging
diff --git a/Dockerfile b/Dockerfile old mode 100755 new mode 100644
diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644
diff --git a/README.md b/README.md old mode 100755 new mode 100644
diff --git a/TODO.txt b/TODO.txt old mode 100755 new mode 100644
diff --git a/backend.go b/backend.go
old mode 100755
new mode 100644
index a9c4d4a..e813f8a
--- a/backend.go
+++ b/backend.go
@@ -179,7 +179,7 @@ func (s *Session) Send(from string, tos []*mail.Address, raw io.Reader) error {
if key != nil {
slog.Info("found WKD key", "address", to.Address)
enc := bytes.Buffer{}
- c, err := openpgp.Encrypt(&enc, key, key[0], nil, nil)
+ c, err := openpgp.Encrypt(&enc, key, nil, nil, nil)
if err != nil {
return err
}
@@ -187,6 +187,7 @@ func (s *Session) Send(from string, tos []*mail.Address, raw io.Reader) error {
c.Close()
email.Header["Content-Type"] = []string{"application/pgp-encrypted"}
body = enc.Bytes()
+ slog.Debug("message encrypted", "content", body)
}
// write email headers into payload
@@ -225,6 +226,7 @@ func (s *Session) Send(from string, tos []*mail.Address, raw io.Reader) error {
if err != nil {
slog.Error("failed to sign body", "err", err)
}
+ slog.Debug("signed")
} else {
slog.Info("no dkim key")
io.Copy(&res, bytes.NewReader(body))
@@ -236,13 +238,15 @@ func (s *Session) Send(from string, tos []*mail.Address, raw io.Reader) error {
}
server := mxs[0].Host + ":smtp"
+ content = res.Bytes()
slog.Info("sending", "host", server, "from", from, "to", tos)
+ slog.Debug("message", "data", content)
err = smtp.SendMail(
server,
nil,
from,
addrs,
- &res,
+ strings.NewReader(string(content)),
)
if err != nil {
return err
diff --git a/doc.go b/doc.go old mode 100755 new mode 100644
diff --git a/go.mod b/go.mod old mode 100755 new mode 100644
diff --git a/go.sum b/go.sum old mode 100755 new mode 100644
diff --git a/main.go b/main.go old mode 100755 new mode 100644
diff --git a/model.go b/model.go old mode 100755 new mode 100644