Drupal + Postfix Integration Under Ubuntu 8.04 (Hardy) - Page 6

Deliver Incoming Mails Through the Dovecot LDA

To make Postfix use Dovecot you need to append one line to /etc/postfix/master.cf:

vim /etc/postfix/master.cf

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

Reload Postfix:

/etc/init.d/postfix reload

Now make Postfix deliver mails through this service:

postconf -e virtual_transport=dovecot
postconf -e dovecot_destination_recipient_limit=1


Configure Dovecot

Dovecot supports PO3, POP3S, IMAP and IMAPS. To enable all these services modify /etc/dovecot/dovecot.conf to match the following settings:

vim /etc/dovecot/dovecot.conf

protocols = imap imaps pop3 pop3s
mail_location = maildir:/home/vmail/%d/%n/Maildir
auth default {
  mechanisms = plain login
  passdb sql {
    args = /etc/dovecot/dovecot-sql.conf
  userdb static {
    args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
  socket listen {
    master {
      path = /var/run/dovecot/auth-master
      mode = 0600
      user = vmail
    client {
      path = /var/spool/postfix/private/auth
      mode = 0600
      user = postfix
      group = postfix
protocol lda {
  log_path = /home/vmail/dovecot-deliver.log
  global_script_path = /home/vmail/globalsieverc
  postmaster_address = [email protected]
  auth_socket_path = /var/run/dovecot/auth-master
  mail_plugins = cmusieve

Edit /etc/dovecot/dovecot-sql.conf and make sure the following directives are set:

vim /etc/dovecot/dovecot-sql.conf

driver = mysql
connect = host= dbname=drupal_example_com user=drupal_example_com password=opensesame
default_pass_scheme = PLAIN-MD5
password_query = SELECT mail AS user, pass AS password FROM users WHERE mail='%u';

Then you must restart Dovecot:

/etc/init.d/dovecot restart

That’s it! Now Drupal and Postfix share the same authentication repository.



  1. Falko Timme, © 2008, Virtual Users And Domains With Postfix, Courier, MySQL And SquirrelMail (Ubuntu 8.04 LTS), http://www.howtoforge.com/virtual-users-domains-postfix-courier-mysql-squirrelmail-ubuntu8.04
  2. Christoph Haas, © 2007, Howto: ISP-style Email Server with Debian-Etch and Postfix, http://workaround.org/articles/ispmail-etch/
  3. Matt Butcher, Learning Drupal 6 Module Development, ISBN 190-4811-80-9, © 2008 Packt Publishing
  4. Thomas Barregren, Mailserver Drupal Module, http://drupal.org/project/mailserver
  5. Alex Saavedra, © 2008, Mailfix Drupal Module, http://drupal.org/project/mailfix
Share this page:

4 Comment(s)

Add comment


From: Paul H at: 2008-10-28 18:25:36

It appears that dovecot expects a returned field called 'password' whilst the mysql and drupal returns a field called 'pass' which means that authentications via pop3 and imap don't work.

Any thoughts?


From: Nik Sulaiman at: 2008-11-18 03:11:04

in /etc/dovecot/dovecot-sql.conf

add the underlined text:

password_query = SELECT mail AS user, pass AS password FROM users WHERE mail='%u';

I was having the problem too, thanks for the post.

Managed to authenticate via imap successfully. Hope it helps.

From: at: 2009-03-06 21:29:14

Nik Sulaiman,

 Thank you for your fix. It has been updated in the tutorial.

 Alex Saavedra

From: plen at: 2011-01-29 07:57:53

The mail_plugins line in the dovecot.conf should be set to just "sieve" not "cmusieve"