Skip to content

Latest commit

 

History

History
75 lines (44 loc) · 2.62 KB

README.md

File metadata and controls

75 lines (44 loc) · 2.62 KB

Maildir processor for the Go-guerrilla package.

Maildir is a popular email storage format.

About

This package is a Processor for the Go-Guerrilla default backend implementation. Use for this in your project if you are using Go-Guerrilla as a package and you would like to add the ability to deliver emails to Maildir folders, using Go-Guerrilla's default backend.

Usage

Import "github.com/flashmob/maildir-processor" to your Go-guerrilla project. Assuming you have imported the go-guerrilla package already, and all dependencies.

Then, when using go-guerrilla as a package, do something like this

cfg := &AppConfig{
    LogFile:      "stderr",
    AllowedHosts: []string{"example.com"},
    BackendConfig: backends.BackendConfig{
        "save_process" : "HeadersParser|Debugger|MailDir",
        "validate_process": "MailDir",
        "maildir_user_map" : "test=-1:-1",
        "maildir_path" : "_test/Maildir",
    },
}
d := Daemon{Config: cfg}
d.AddProcessor("FastCGI", fastcgi_processor.Processor)

d.Start()

// .. keep the server busy..

Note that here we've added MailDir to the end of the save_process config option, then used the d.AddProcessor api call to register it. Then configured other settings.

See the configuration section for how to configure.

Configuration

The following values are required in your backend_config section of your JSON configuration file

  • maildir_path - string. maildir_path may contain a [user] placeholder. This will be substituted at run time eg /home/[user]/Maildir will get substituted to /home/test/Maildir for [email protected]
  • maildir_user_map - string. This is a string holding user to group/id mappings - in other words, the recipient table, each record separated by "," where records have the following format: <username>=<id>:<group>
    Example: "test=1002:2003,guerrilla=1001:1001" . Use -1 for <id> & <group> if you want to ignore these, otherwise get these numbers from /etc/passwd

Don't forget to add MailDir to the end of your save_process config option, eg:

"save_process": "HeadersParser|Debugger|Hasher|Header|MailDir",

also add MailDir to the end of your validate_process config option, eg:

"validate_process": "MailDir",

Example

Take a look at Maildiranasaurus - an SMTP server that uses Go-Guerrilla as a package and adds Maildir delivery using this package.

Credits

This package depends on Simon Lipp's Go MailDir package.