使用Postfix,Dovecot和Mysql配置邮件服务器

由于学习的需要,我要配置个本地邮件服务器.虽然找到了一篇很详细的资料,但是在配置过程中还是遇到了这样那样的问题. 写篇文章记下来自己的学习过程,毕竟好记性不如烂笔头嘛.

# 详细教程

Google 一下便找到了一个十分详细的教程,分享给大家:How To Configure a Mail Server Using Postfix, Dovecot, MySQL, and SpamAssasin (opens new window) 教程虽然很详细,但难免有不理解和差错的地方.下面就讲下我遇到的问题:

# Dovecot 证书问题

教程上设置的证书位置是:

ssl_cert = </etc/ssl/certs/dovecot.pem
ssl_key = </etc/ssl/private/dovecot.pem
1
2

但实际上是空的 需要手动 copy 过去,默认存储的位置是:

ssl_cert = /etc/dovecot/dovecot.pem
ssl_key = /etc/dovecot/private/dovecot.pem
1
2

# 查看日志发现读取配置出错

出错信息如下:

dovecot: lmtp(11504): Fatal: Error reading configuration: Invalid settings: postmaster_address setting not given
1

查到相关资料Invalid settings: postmaster_address setting not given (opens new window) 简单来说就是在/etc/dovecot/dovecot.conf文件内添加一行 postmaster_address=postmaster at DOMAIN 即可

# 重启 Dovecot

当我们执行 service dovecot restart 时,发现根本没有这个 service.
其实 dovecot 已经在运行了,我们只需执行 dovecot reload 即可

# 邮件无法发送

日志输出如下:

B0E4F26077E: to=<root@example.jp>, orig_to=<root>, relay=none, delay=6780, delays=6780/0/0.09/0, dsn=5.4.4, status=bounced (Host or domain name not found. Name service error for name=example.jp type=AAAA: Host not found)
1

这个问题是因为 Postfix 默认启用了 IPv6 并且优先级比 IPv4 要高,所以需要在配置文件 /etc/postfix/main.cf里面设置 inet_protocols = ipv4 这样就关闭 IPv6 了.即可解决问题.

大概就是遇到这么多问题了,最后祝愿大家圣诞节快乐~