Dovetail

Dovetail ahem dovetails Elixir and dovecot. It's raison d'ĂȘtre is to control a dovecot server for IMAP testing.

Dovetail is an Elixir library that lets you:

Install

Dovecot

Dovetail requires dovecot. To setup a rootless install of dovecot, simply run:

$ mix dovetail.make

and then let yourself get distracted. It's going to take awhile for it to download and compile dovecot.

Dovetail

Fetch Dovetail's dependencies and compile it all:

$ mix deps.get
$ mix compile

Configuration

Dovecot's dovecot.conf must be generated before starting the mail server. This will be done implicitly if you start the :dovetail application or call Dovetail.ensure/1.

There are two ways to explicitly call the necessary Dovecot.Config code. From within an Elixir VM:

iex> Dovetail.config()

Or, using the mix task:

$ mix dovetail.config

The dovecot.conf file is templated from priv/dovecot.conf.eex.

Usage

Dovetail can be used as a library, application, or mix command-line tool.

IEx Shell

Start an IEx shell by calling:

$ iex -S mix

The :dovetail application, along with the dovecot server, should start with the mix application. You can check this with Dovetail.up?/0

iex> Dovetail.up?
true

Documentation

You can read more usage notes in the source code documentation for the various Dovetail components. Start with checking the documentation from the IEx shell:

iex> h Dovetail

You can also build the documentation into neat and trim HTML:

$ mix docs

User Store

The Dovetail library must have access to whatever UserStore resource it is trying to access. For example, if you're using a UserStore.PasswordFile, the node must be able to read and write to the file specified by path.

Dovecot must also be configured to correctly use that resource. See

License + Copyright

Dovetail may be redistributed according to the BSD 3-Clause License.

Copyright (c) 2015, ThusFresh Inc