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

6e42d9b

Author: blmayer (bleemayer@gmail.com)

Date: Thu Sep 14 18:27:13 2023 -0300

Parent: 7b5d4ee

Improved docs

Diff

doc.go

commit 6e42d9bb7b6bcf0e8185e43a6b4c2d5945e25253
Author: blmayer <bleemayer@gmail.com>
Date:   Thu Sep 14 18:27:13 2023 -0300

    Improved docs

diff --git a/doc.go b/doc.go
index e5f3ecf..1ee8182 100644
--- a/doc.go
+++ b/doc.go
@@ -4,8 +4,7 @@
 // file which should be located in ~/.config/dovel/config.json. This server is
 // responsible to receive your emails and save them according to your hooks.
 //
-// The structure of this config file is
-// [git.derelict.garden/dovel/email/config.Config]. See that doc for more
+// The structure of this config file is [Config]. See that doc for more
 // info.
 //
 // # Setting up your email server
@@ -23,7 +22,7 @@
 //
 // The current recomendation is to use port 586. Dovel works with any port,
 // and the value must be set in the port field of the config file. To 
-// configure this server see [git.derelict.garden/dovel/email/config.Config].
+// configure this server see [Config].
 //
 // To receive email only the MX record is enough. Everytime dovel receives an
 // email it searches for an executable file in $XDG_CONFIG_DIR/dovel/hooks/
@@ -47,8 +46,15 @@
 //
 // To receive emails you need to setup the MX record in your domain registrar,
 // sending email is more complicated, some receiving servers only need the SPF
-// and PTR records, some also need DKIM and DMARK, adjust according to your
-// needs.
+// and PTR records, some also need DKIM and DMARC, adjust according to your
+// needs. Configuring DNS records is not the goal of this doc.
+//
+// # DKIM configuration
+//
+// DKIM in dovel is handled in a per-user basis only for sending emails,
+// for receiving emails it is up to the corresponding hook. This means that
+// each user have to setup its DKIM key. Luckily this is simply pointing
+// the key path in the [User] struct.
 //
 // # Sending email
 //
@@ -56,6 +62,8 @@
 // config. That means you need at least one user descrived on the json file.
 // The format of that file is a JSON array of the [User] struct.
 // 
-// Dovel is listening to commands on the port specified in the config file
-// use any email client to communicate with dovel.
+// Dovel is listening to connections on the port specified in the config file
+// use any email client to communicate with dovel. When an email comes from
+// the domain configured Dovel will check if the sending user is valid using
+// the Vault interface, in positive case the email is sent.
 package email

model.go

commit 6e42d9bb7b6bcf0e8185e43a6b4c2d5945e25253
Author: blmayer <bleemayer@gmail.com>
Date:   Thu Sep 14 18:27:13 2023 -0300

    Improved docs

diff --git a/model.go b/model.go
index 94d528a..53ad37e 100644
--- a/model.go
+++ b/model.go
@@ -1,6 +1,3 @@
-// package email contains interfaces that are passed to the common
-// functions on the server and web projects. You can import this to use
-// on templates and handlers.
 package email
 
 import (
@@ -19,6 +16,9 @@ type Config struct {
 	VaultFile string
 }
 
+// User represents a user that should be able to send emails. This struct is
+// found in the users json file, that is on the path pointed by VaultFile field
+// in [Config]. PrivateKey is the path to a private key for the DKIM signature.
 type User struct {
 	Name       string
 	Email      string