Dovecot basic

From wikipost
Jump to navigationJump to search

Dovecot basic

  • dovecot-imapd
  • exim4
  • fetchmail

apt-get install dovecot-imapd exim4 fetchmail

setting up exim

dpkg-reconfigure exim4-config

General type of mail configuration: internet site

System mail name:

IP-addresses to listen on for incoming SMTP connections: No value (all interfaces)

Other destinations for which mail is accepted:

Domains to relay mail for: No value (no other domains)

Machines to relay mail for: No value (no other machines)

Keep number of DNS-queries minimal (Dial-on-Demand)? No

Delivery method for local mail: Maildir format in home directory

Split configuration into small files? Yes

setting up dovecot

create a new file /etc/dovecot/passwd


To store passwords encypted, use:

doveadm pw -s ssha
Enter new password: foo
Retype new password: foo

Note that you won't get the same output after {SSHA} as above, because Dovecot uses random salts when creating the SSHA hash. This means that even if multiple users have the same password, you won't know that because their hashes are different.

The passwd file entry would be:


With the 2.x versions of Dovecot the configuration files have been split up (as opposed to a single dovecot.conf file in 1.x versions).

Below are listed the modifications required on the default dovecot config files (after a fresh installation).

  • /etc/dovecot/dovecot.conf

Leave as-is.

  • /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain
!include auth-system.conf.ext

  • /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir

  • /etc/dovecot/conf.d/auth-passwdfile-conf.ext
passdb {
   driver = passwd-file
   args = /etc/dovecot/users

userdb {
   driver = passwd-file
   args = uid=vmail gid=vmail home=/home/vmail/%u

setting up fetchmail


poll localhost with proto POP3
pass bill123
is here

IMAP sync with Gmail

apt-get install offlineimap

  • offlineimaprc example
accounts = Gmail
maxsyncaccounts = 1

[Account Gmail]
localrepository = Local
remoterepository = Remote
maxage = 365

[Repository Local]
sep = /
type = Maildir
localfolders = /disk/mail/dovecot/varvmail/
nametrans = lambda folder: re.sub('Junk', '[Gmail].Spam',
                           re.sub('Drafts', '[Gmail].Drafts',
                           re.sub('Inbox', '[Gmail].INBOX',
                           re.sub('Trash', '[Gmail].Bin',
                           re.sub('Sent', '[Gmail].Sent Mail',
                           re.sub('Flagged', '[Gmail].Starred',
                           re.sub('Trash', '[Gmail].Trash',
                           re.sub('Important', '[Gmail].Important',
                           re.sub('Archive', '[Gmail].All Mail', folder)))))))))

[Repository Remote]
type = Gmail
remotehost =
remoteuser =
remotepass = mypassword
ssl = yes
maxconnections = 3
realdelete = no
## One-way synching.  Perfect for backups.
readonly = true
nametrans = lambda folder: re.sub('.*Spam$', 'Junk',
                           re.sub('.*Drafts$', 'Drafts',
                           re.sub('.*INBOX$', 'Inbox',
                           re.sub('.*Sent Mail$', 'Sent',
                           re.sub('.*Starred$', 'Flagged',
                           re.sub('.*Trash$', 'Trash',
                           re.sub('.*Bin$', 'Trash',
                           re.sub('.*Important$', 'Important',
                           re.sub('.*All Mail$', 'Archive', folder)))))))))


host#~: offlineimap -c offlineimaprc

Afterwards I reassign vmail as owner and group to all folders to be sure that messages are not left as root:root.

host#~: chmod -R vmail:vmail /disk/mail/dovecot/varvmail