邮件系统-Postfix, Dovecot, MySQL和Postfixadmin

mailbox和maildir

postfix的配置文件”/etc/postfix/main.cf“中变量home_mailbox是用来设定用户邮件存放地址的。它有两种形式:

Q&A

  1. 利用postfixadmin建立用户,同时会创建相关目录。但是默认情形下,postfixadmin创建的目录为”$virtual_mailbox_base/virtual_mailbox_maps/username@domain“。如果邮件服务器上有多个域名,这样则不便于管理,最好是:”$virtual_mailbox_base/$virtual_mailbox_maps/domain/user/“的形式。
    1. 修改postfixadmin的配置文件(“config.inc.php”):
    2. $CONF[‘domain_path’]设定为”YES“;
    3. $CONF[‘domain_in_mailbox’]设定为”YES”.
    4. 使用postfixadmin新建一个用户(即”Add Mailbox”),查询数据库会发现表mailbox中用户的”maildir“已经是”domain/user“格式。
    5. 调整dovecot的设置:
      • 根据需要修改dovecot-sql.conf.ext中用户认证的SQL语句。认证用户时使用使用”username@domain“还是”username”形式;查询返回”maildir“的路径应该为完整路径
      • 修改用户mailbox的设定:maibox_location = maildir:/path/%d/%u/在文件”dovecot/conf.d/10-mail.conf“中。mailbox与maildir的差别请查看。
<?php

// ......

// Mailboxes
// If you want to store the mailboxes per domain set this to 'YES'.
// Examples:
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/username@domain.tld
//$CONF['domain_path'] = 'NO';
$CONF['domain_path'] = 'YES';
// If you don't want to have the domain in your mailbox set this to 'NO'.
// Examples:
//   YES: /usr/local/virtual/domain.tld/username@domain.tld
//   NO:  /usr/local/virtual/domain.tld/username
// Note: If $CONF['domain_path'] is set to NO, this setting will be forced to YES.
//$CONF['domain_in_mailbox'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

// ......
?>