This is the main dovel repository, it has the Go code to run dovel SMTP server.
Author: brian (git@myr.sh)
Date: Sun Sep 10 18:27:53 2023 -0300
Parent: abf55a1
Added /hooks to config dir
commit b38a81af22921b4586891e99d2f4cfc683777d8d
Author: brian <git@myr.sh>
Date: Sun Sep 10 18:27:53 2023 -0300
Added /hooks to config dir
diff --git a/cmd/dovel/backend.go b/cmd/dovel/backend.go
index c5f9949..8d45119 100644
--- a/cmd/dovel/backend.go
+++ b/cmd/dovel/backend.go
@@ -76,7 +76,7 @@ func (s *Session) Data(raw io.Reader) error {
return err
}
domain := strings.Split(from.Address, "@")[1]
- h := path.Join(configPath, "send-"+domain)
+ h := path.Join(configPath, "hooks", "send-"+domain)
if _, err := os.Stat(h); err == nil {
err := s.Send(s.from, s.tos, strings.NewReader(string(cont)))
if err != nil {
@@ -98,7 +98,7 @@ func (s *Session) Data(raw io.Reader) error {
}
domain := strings.Split(toAddr.Address, "@")[1]
- h := path.Join(configPath, "receive-"+domain)
+ h := path.Join(configPath, "hooks", "receive-"+domain)
if _, err := os.Stat(h); err != nil {
println(domain, "receive error:", err.Error())
continue
@@ -109,7 +109,6 @@ func (s *Session) Data(raw io.Reader) error {
if err := c.Run(); err != nil {
return err
}
-
}
return nil
commit b38a81af22921b4586891e99d2f4cfc683777d8d
Author: brian <git@myr.sh>
Date: Sun Sep 10 18:27:53 2023 -0300
Added /hooks to config dir
diff --git a/doc.go b/doc.go
index da7e951..edb7e06 100644
--- a/doc.go
+++ b/doc.go
@@ -38,9 +38,10 @@
//
// The server itself only receives email, for this feature only the MX record
// is enough. Everytime dovel receives an email it searches for an executable
-// file in $XDG_CONFIG_DIR/dovel/ named receive-DOMAIN, for the DOMAIN the is
+// file in $XDG_CONFIG_DIR/dovel/hooks/ named receive-DOMAIN, for the DOMAIN
// receiving the email and executes it passing the email in mbox format as
-// standard input.
+// standard input. Then it is up to the script to decide what to do. See the
+// scripts repo for examples.
//
// # Configuring DNS records
//