便民 发表于 2015-11-24 10:40:59

Postfix DSN消息

  DSN是delivery status notification
  包括四种:fail,delay,success,address verification
  当邮件发送失败时,比如下一跳不可达时,会尝试多次建立连接,
  maximal_backoff_time = 1m
maximal_queue_lifetime = 8m
bounce_queue_lifetime = 8m

  根据上面的配置,每隔1分钟尝试投递,尝试时间达到8分钟时,如果依然失败,则发送fail DSN消息。
  邮件内容使用缺省模板。示例如下。


  

  如果想要收到delay DSN,需要如下配置,才能启动
  delay_warning_time = 1m

  缺省为
  delay_warning_time = 0h,代表不启用

  发送邮件,下一跳不可达,则一分钟后就会收到delay DSN
  示例如下。


  

  如果想收到success DSN消息,其实跟postfix的配置无关,和你发送邮件的客户端配置有关
  是当发送邮件过程中,RCPT TO命令的扩展中携带NOTIFY=success时
  RCPT TO: <aaa@163.com> NOTIFY=success

  如果邮件发送成功,则会向发件人发送success DSN消息。
  示例如下。


  

  如果不希望处理NOTIFY关键字,可以禁掉DSN。
  smtpd_discard_ehlo_keywords = DSN

  这样的话,如果RCPT TO中携带NOTIFY时,会报错的;
  但是如果邮件发送失败或delay的时候,依然会发送fail DSN或delay DSN;
  即缺省情况只会发送fail DSN和delay DSN,而不会发送success和verify DSN,只有发件人携带NOTIFY包含success时,且postfix未关闭DSN时,才会发送success DSN。
  

  verify模板是用来地址检查后,发送报告的。
  sendmail -bv对收件人进行地址检查,但是并不会真正发送邮件。-f 指定发件人。
  # sendmail -bv -f aaa@pro.com bbb@pro.com

  Mail Delivery Status Report will be mailed to <aaa@pro.com>.

页: [1]
查看完整版本: Postfix DSN消息