我已经用 Postfix 设置了一个邮件服务器,目前我正在 Postfixadmin 的帮助下创建虚拟邮箱。我正在使用 Courier 来处理 IMAP 身份验证,但我在正确设置它时遇到了麻烦。
我研究了日志并缩小了主要问题的范围,即 IMAP 无法找到指定的 maildirs。也就是说,maildirs 不存在。
我可以通过手动创建 IMAP 期望的 maildirs 来解决问题,但我并不认为每次添加邮箱时都必须这样做。我需要它在我通过 Postfixadmin 添加虚拟邮箱后立即自动工作。
我错过了什么吗?
以下是一些相关信息:
Postfixadmin使用MySQL数据库查找邮箱,相关表说明如下:
+------------+--------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------------------+-------+
| username | varchar(255) | NO | PRI | NULL | |
| password | varchar(255) | NO | | NULL | |
| name | varchar(255) | NO | | NULL | |
| maildir | varchar(255) | NO | | NULL | |
| quota | bigint(20) | NO | | 0 | |
| local_part | varchar(255) | NO | | NULL | |
| domain | varchar(255) | NO | MUL | NULL | |
| created | datetime | NO | | 0000-00-00 00:00:00 | |
| modified | datetime | NO | | 0000-00-00 00:00:00 | |
| active | tinyint(1) | NO | | 1 | |
+------------+--------------+------+-----+---------------------+-------+
这是一个示例记录:
username = [email protected]
password = [hashed password here]
name = User 01
maildir = [email protected]
quota = 0
local_part = user
domain = domain.com
created = 2012-08-17 07:52:01
modified = 2012-08-17 07:52:01
active = 1
(就此问题而言,domain.com 只是一个虚拟对象。我使用的是具有有效 MX 记录的注册域。)
这是我的内容/etc/courier/authmysqlrc
MYSQL_SERVER 127.0.0.1
MYSQL_USERNAME [omitted]
MYSQL_PASSWORD [omitted]
MYSQL_DATABASE [omitted]
MYSQL_USER_TABLE mailbox
MYSQL_LOGIN_FIELD username
MYSQL_NAME_FIELD name
MYSQL_CRYPT_PWFIELD password
#MYSQL_CLEAR_PWFIELD password
MYSQL_MAILDIR_FIELD maildir
MYSQL_QUOTA_FIELD concat(quota,'S')
MYSQL_HOME_FIELD '/home/vmail'
MYSQL_UID_FIELD '5000'
MYSQL_GID_FIELD '5000'
(我为此创建了必要的 UNIX 用户 ang 组,正确的 UID:GID 为 5000:5000 )
通过从中删除我们的域
mydestinations
并允许 Postfixadmin 在创建时发送欢迎消息来解决我的问题。显然,邮件目录是在电子邮件到达时创建的,因此欢迎消息的发送会处理它。