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

e459d8a

Author: bmayer3 (bmayer@sibros.tech)

Date: Mon Jan 23 13:44:33 2023 -0300

Parent: 4a25455

Updated docs

Diff

config/config.go

commit e459d8a1e5c275963f81bcb54b157664af42f88f
Author: bmayer3 <bmayer@sibros.tech>
Date:   Mon Jan 23 13:44:33 2023 -0300

    Updated docs

diff --git a/config/config.go b/config/config.go
index 6341e49..0bf7a34 100644
--- a/config/config.go
+++ b/config/config.go
@@ -9,11 +9,11 @@ type Handler func(email interfaces.Email, content []byte) error
 // Config is the configuration structure used to set up dovel
 // server and web interface. This should be a JSON file located
 // in $HOME/.dovel-config.json
+// Server field configures the server, and WebPort is an optional field
+// used to specify the HTTP server port for the web interface, if present
+// the HTTP web server is started.
 type Config struct {
-	Server ServerConfig
-
-	// WebPort is an optional field used to specify the HTTP server port
-	// for the web interface, if present the HTTP web server is started.
+	Server  ServerConfig
 	WebPort *string
 }
 
@@ -25,16 +25,14 @@ type InboxConfig struct {
 }
 
 // ServerConfig is used to configure your email server.
+// Address is used to specify which address the server should listen
+// to connections, a typicall value is :2525.
+// Domain is what the server should respond in a HELO or EHLO request.
+// Inboxes are the accounts available is this server, i.e. the accepted
+// domains on emails: "example@example.domain". Each domain is handled
+// separetly, so you can receive email for multiple domains.
 type ServerConfig struct {
-	// Address is used to specify which address the server should listen
-	// to connections, a typicall value is :2525.
 	Address string
-
-	// Domain is what the server should respond in a HELO or EHLO request.
-	Domain string
-
-	// Inboxes are the accounts available is this server, i.e. the accepted
-	// domains on emails: "example@example.domain". Each domain is handled
-	// separatly, so you can receive email for multiple domains.
+	Domain  string
 	Inboxes []InboxConfig
 }

doc.go

commit e459d8a1e5c275963f81bcb54b157664af42f88f
Author: bmayer3 <bmayer@sibros.tech>
Date:   Mon Jan 23 13:44:33 2023 -0300

    Updated docs

diff --git a/doc.go b/doc.go
index c1aa906..f565c23 100644
--- a/doc.go
+++ b/doc.go
@@ -5,7 +5,7 @@
 //  1. The dovel binary
 //  2. The interfaces library
 //
-// # 1. The binary
+// # The binary
 //
 // This binary is the main server, it is configured using a single config
 // file which should be located in ~/.dovel-config.json. This server is
@@ -16,28 +16,47 @@
 // The structure of this config file is [blmayer.dev/x/dovel/config.Config]. See that doc for more
 // info.
 //
-// # 2. The library
+// # The library
 //
 // This package also delivers a subpackage called interfaces, it contains
 // structs that are used through this project. Those are also used in templates
 // and you can use them in other projects.
 //
-// # Setting up you email server
+// # Setting up your email server
 //
 // Email works in a complex way, DNS records must match your server's
 // configuration. This guide will try to give more detailed information
 // in comparison with the website tutorial.
 //
-// # Server configuration
-//
 // An email server typically listens on ports 25, 2525, 587 or 465 for mail
 // exchange. But their use differ:
 //
-// - 25: is the original SMTP port and first to be official by RFC.
-// - 465: is marked as deprecated.
-// - 587: is also official by RFC, this port is used for TLS encrypted mail.
+//   - 25: is the original SMTP port and first to be official by RFC.
+//   - 465: is marked as deprecated.
+//   - 587: is also official by RFC, this port is used for TLS encrypted mail.
+//
+// The current recomendation in to use port 586. To configure this server see
+// [blmayer.dev/x/dovel/config.Config].
+//
+// The server itself only receives email, for this feature only the MX record
+// is enough. There are 2 handlers included in this project:
+//
+//   - gwi: to be used with the gwi project, saves email by subject, ish.
+//   - file: closer to the standard, saves email using to and subject fields.
+//
+// The "file" handler gives you multiple inboxes, so you can separate by giving
+// different addresses, for example, email1@my.domain and email2@my.domain,
+// will have different inboxes. Inside each inbox emails are separated by
+// subject.
+//
+// The "gwi" handler is intended for mailing lists, or issues on git
+// repositories, email is added to the open folder, and then separated by
+// subject. See the gwi project for more information.
 //
-// The current recomendation in to use port 586.
+// # Configuring DNS records
 //
-// To configure this server see the [Config] struct.
+// 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.
 package dovel