You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Postfix邮件服务器:Dovecot LMTP作为MDA的技术问询

嘿,我来帮你梳理下当前Postfix+Dovecot(LMTP)的配置,看看哪里需要调整优化:

Postfix 配置验证与优化建议

main.cf 配置

你设置的:

virtual_transport = lmtp:unix:private/dovecot-lmtp

这个配置是完全正确的——它明确告诉Postfix,把虚拟域/用户的邮件通过Unix套接字传递给Dovecot的LMTP服务。接下来需要确保Dovecot确实在监听这个套接字(后面会说Dovecot的配套配置要求)。

master.cf 配置

你当前的配置片段整理后是这样:

submission inet n - y - - smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
dovecot unix - n n - - pipe
  flags=DRhu user=vmail:vmail argv=/usr/bin/sudo /usr/lib/dovecot/deliver -f ${sender} -d ${user}

这里有两个关键注意点:

  1. submission服务配置:这部分没问题,强制加密的设置符合现代邮件安全标准,要是想更严谨,还能补充客户端认证限制、SPF/DKIM检查等参数,但核心配置是有效的。
  2. dovecot pipe服务:既然你已经选择用LMTP作为投递方式,这个旧的deliver管道配置就多余了,甚至可能让Postfix混淆投递路径。建议直接注释掉或者删掉这一段。
Dovecot 配置验证与补充要求

你给出的protocols = imap lmtp是正确的,但还得补充LMTP的监听配置(通常在conf.d/10-master.conf文件里),确保它和Postfix的套接字路径完全匹配:

service lmtp {
  unix_listener private/dovecot-lmtp {
    mode = 0660
    user = postfix  # 让Postfix用户有权限访问这个套接字
    group = postfix
  }
}

另外还要确认:conf.d/10-mail.conf里的mail_location已经正确指向用户邮件存储目录,且vmail用户对该目录有完整的读写权限。

快速验证步骤

调整完配置后,可以通过这些步骤确认是否正常:

  1. 重启服务:systemctl restart postfix dovecot
  2. 检查套接字:ls -l /var/spool/postfix/private/dovecot-lmtp(路径可能因系统不同略有差异,只要Postfix能访问就没问题)
  3. 测试投递:用sendmail或者swaks发一封测试邮件,然后查看/var/log/mail.log或/var/log/maillog,确认邮件是否成功投递到Dovecot的存储目录里。

内容的提问来源于stack exchange,提问作者ankitrokdeonsns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:26:58