dovel

package module
v0.6.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2023 License: LGPL-3.0 Imports: 0 Imported by: 0

README

_________                 ______
______  /________   _________  /
_  __  /_  __ \_ | / /  _ \_  / 
/ /_/ / / /_/ /_ |/ //  __/  /  
\__,_/  \____/_____/ \___//_/

dovel development home

Welcome! This is the git repository of the dovel.email project, here you'll find the go code and template pages. Feel free to send us email and contribute.

Some code meta information:

Go Report Card Go Reference

Also, take a look at our landing page:

dovel website

Documentation

Overview

dovel is a SMTP server and web interface that is simple to setup and use.

This package has two parts:

  1. The dovel binary
  2. The interfaces library

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 responsible to receive your emails and save them according to your config. The other part is the optional web interface that is used to visualize your mail.

The structure of this config file is blmayer.dev/x/dovel/config.Config. See that doc for more info.

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 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.

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.

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.

Configuring DNS records

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.

Directories

Path Synopsis
cmd
package interfaces contains interfaces that are passed to the common functions on the server and web projects.
package interfaces contains interfaces that are passed to the common functions on the server and web projects.
file
file adds the common email file handling, but with a twist: here we save emails first by inbox and then subject.
file adds the common email file handling, but with a twist: here we save emails first by inbox and then subject.
gwi
gwi contains the email handler for interacting with gwi.
gwi contains the email handler for interacting with gwi.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL