我已经使用 Postfix 设置了邮件服务器,目前正在借助 Postfixadmin 创建虚拟邮箱。我正在使用 Courier 处理 IMAP 身份验证,但在正确设置方面遇到了麻烦。
我研究了日志,并将主要问题缩小到 IMAP 无法找到指定的邮件目录。也就是说,邮件目录不存在。
我可以通过手动创建 IMAP 所需的邮件目录来解决问题,但我真的不认为每次添加邮箱时都要这样做。我需要它在我通过 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 用户和组,其正确的 UID:GID 为 5000:5000)
答案1
通过删除我们的域mydestinations
并允许 Postfixadmin 在创建时发送欢迎消息解决了我的问题。显然,邮件目录是在电子邮件到达时创建的,因此发送欢迎消息可以解决这个问题。