list

server

This is the main dovel repository, it has the Go code to run dovel SMTP server.

curl https://dovel.email/server.tar tar

aee0979

Author: blmayer (bleemayer@gmail.com)

Date: Tue Oct 3 21:23:27 2023 -0300

Parent: 34f91c4

Improved error on receive

Diff

cmd/dovel/backend.go

diff --git a/cmd/dovel/backend.go b/cmd/dovel/backend.go
index d4fbe63..73741d2 100644
--- a/cmd/dovel/backend.go
+++ b/cmd/dovel/backend.go
@@ -121,7 +121,7 @@ func (s *Session) Data(raw io.Reader) error {
 		h := path.Join(configPath, "hooks", "receive-"+domain)
 		if f, err := os.Lstat(h); err != nil {
 			slog.Error("lstat error", "domain", domain, "error", err.Error())
-			continue
+			break
 		} else if !f.Mode().IsRegular() {
 			h, err = os.Readlink(h)
 			if err != nil {
@@ -134,14 +134,13 @@ func (s *Session) Data(raw io.Reader) error {
 		c.Stdin = strings.NewReader(string(mess))
 		out := bytes.Buffer{}
 		c.Stdout = &out
-		if err := c.Run(); err != nil {
+		if err = c.Run(); err != nil {
 			slog.Error("run script", "error", err.Error(), "output", out.String())
-			slog.Error("run script", err.Error())
-			continue
+			break
 		}
 	}
 
-	return nil
+	return err
 }
 
 func (s *Session) Reset() {}