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

Postfix错误通知配置正确性验证及测试方法咨询

Postfix错误通知配置正确性验证及测试方法咨询

首先说你的配置参数本身是没问题的——delay_notice_recipient、bounce_notice_recipient、2bounce_notice_recipient和error_notice_recipient这几个参数确实是用来指定各类错误/通知邮件的接收人,但有个关键配置你可能漏了,那就是notify_classes,它决定了Postfix会针对哪些事件发送通知。

默认情况下,notify_classes的取值可能只有resource,software,并没有包含你需要的bounce、2bounce、delay、error这些类型。所以你需要在main.cf里补充这个配置:

notify_classes = bounce,2bounce,delay,error,resource,software

这样Postfix才会触发对应的通知邮件发送逻辑。

另外,得先确认Postfix能正常把通知邮件投递到你的myemail@mydomain.com:如果是本地邮箱,检查/var/spool/mail/下对应的用户邮件是否正常;如果是外部邮箱,先测试用Postfix发一封普通邮件到这个地址,确保能收到,避免是投递链路本身出了问题。

接下来聊聊怎么触发测试通知,你之前用telnet发错误收件人没收到通知是正常的——因为Postfix在SMTP会话阶段就直接拒绝了这封邮件,不会生成bounce通知,只有当Postfix先接收了邮件,之后投递失败时才会发送bounce:

  • 测试 bounce 通知:发一封邮件到「存在的域名但不存在的用户」,比如fakeuser@gmail.com(或者你自己域名下的不存在用户,前提是你的Postfix配置里mydestination包含这个域名,会先接收邮件)。Postfix接收后尝试投递失败,就会生成bounce邮件发给你指定的收件人。
  • 测试 delay 通知:临时修改配置制造投递延迟:
    1. 在/etc/postfix/transport里添加一行:test-delay-domain.com :[192.0.2.1](192.0.2.1是RFC规定的无效测试IP,永远无法连接)
    2. 执行postmap /etc/postfix/transport更新映射
    3. 在main.cf里确保transport_maps = hash:/etc/postfix/transport
    4. 可以临时把delay_warning_time改小,比如delay_warning_time = 5m(默认是4小时,改了能快速收到通知)
    5. 发邮件到anyuser@test-delay-domain.com,Postfix尝试投递失败后,过5分钟就会发送延迟通知
  • 测试 error 通知:故意搞坏Postfix的配置,比如把main.cf里的smtpd_recipient_restrictions改成一个无效的规则(比如smtpd_recipient_restrictions = invalid_rule),然后重启Postfix。当有邮件尝试连接时,Postfix会触发软件错误,这时就会发送error通知到你的邮箱。

最后,你可以随时查看Postfix的日志/var/log/mail.log,搜索你的通知邮箱地址或者关键词sendmail、bounce,确认Postfix是否尝试发送了这些通知——如果日志里有发送记录但你没收到,那就是投递链路的问题;如果日志里根本没触发,那就是配置还没到位。

备注:内容来源于stack exchange,提问作者raz3r

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 15:44:49