AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 48326
Accepted
Brian Armstrong
Brian Armstrong
Asked: 2009-07-31 14:07:12 +0800 CST2009-07-31 14:07:12 +0800 CST 2009-07-31 14:07:12 +0800 CST

如何在 postfix 中收集反弹

  • 772

这与这个问题有关:

linux - 为我的时事通讯应用程序获取反弹报告的方法?- 服务器故障

假设我在发送时事通讯以识别退回邮件并从我的时事通讯退订时生成这样的电子邮件地址:[email protected]

我想我会在返回路径中使用它,对吧?

那么我将如何在 postfix 中设置它以将所有这些以“bounce-”为前缀的地址收集到一个邮箱中?

最后,我听说有人提到软弹跳与硬弹跳。有人可以解释不同之处以及应该如何计算它们以知道何时从电子邮件通讯中永久删除某人?

email postfix email-server
  • 3 3 个回答
  • 43879 Views

3 个回答

  • Voted
  1. Best Answer
    Insyte
    2009-08-01T11:07:11+08:002009-08-01T11:07:11+08:00

    您的问题(处理地址)的确切答案[email protected]取决于您的服务器如何配置为接收邮件。如果example.com是虚拟域,你能做的最好的就是收集[email protected]邮箱中的消息(假设recipient_delimiter = -)。

    如果example.com是服务器的本地传递域(邮件传递到实际系统帐户),那么您可以将.forward文件添加到用户的主目录,该文件bounce传递到解析退回信息并将其记录在数据库或文件中的程序. 有关格式以及如何交付给程序man local的更多信息,请参阅。.forward

    由于我们为大量域发送消息,我们所做的就是bounces.example.com用作我们的 VERP 域。此域需要添加到relay_domains. /etc/postfix/transport_maps使用此内容创建:

    bounces.example.com             bulkbounce:
    

    然后将与此类似的行附加到/etc/postfix/master.cf:

    bulkbounce unix - nn - - 管道
      user=nobody argv=/usr/local/bin/bounce_handler.py ${recipient}
    

    该bounce_handler.py脚本接受 VERP 地址作为其命令行选项,对其进行解析并进行必要的数据库更新以记录退回邮件。

    • 18
  2. Alexis Wilke
    2015-11-12T17:01:30+08:002015-11-12T17:01:30+08:00

    实际上,如果您想支持许多不同的域,Instyle 的答案很难实现,这是错误的,因为:

    a) 以他的示例为例transport_maps,所有发送到该域的电子邮件都将发送到该特定服务,而不管这些电子邮件是否为退回电子邮件。由于它使用特定的域名,它确实应该只是被退回的电子邮件......但不能保证那样。

    b) 发送到您的脚本的数据是电子邮件本身,而不是退回邮件。换句话说,您的代码可能不知道电子邮件被退回的原因(即本地退回邮件只会向您发送原始电子邮件。)


    在 postfix 中进行该设置的正确方法是使用退回通知类。

    1) 在/etc/postfix/main.cf

    notify_classes = bounce
    bounce_notice_recipient = [email protected]
    transport_maps = hash:/etc/postfix/transport_maps
    

    2) 在/etc/postfix/transport_maps

    # when you make changes to this file, run:
    #   sudo postmap /etc/postfix/transport_maps
    [email protected] bulkbounce:
    

    如您所见,我们现在告诉 postfix[email protected]在电子邮件被退回时使用。然后在传输映射中,bulkbounce用作处理任何电子邮件地址的服务[email protected]。

    最后你可以bulkbounce用你的脚本定义:

    3) 在/etc/postfix/master.cf

    bulkbounce unix -       n       n       -       -       pipe
      flags=FRq user=bounce argv=/home/bounce/bin/snapbounce --sender ${sender} --recipient ${recipient}
    

    此脚本要求您有一个用户。nobody也是一个不错的选择。如果您想拥有特定用户,可以使用以下命令创建它:

    useradd bounce
    

    如果没有 中的脚本master.cf,电子邮件将发送到批量退回帐户。因此,如果您有一个从文件中解析电子邮件的脚本,那么这将在没有transport_mapsandmaster.cf更改的情况下工作。


    从下面的评论:

    仅供参考 - re:双重退回...
    如果您正在修改返回地址(VERP 地址,例如,那么如果您有兴趣仅在您的脚本中解析退回[email protected],那么您将需要注释掉 中的行main.cf。bounce_notice_recipient+id

    • 17
  3. Jeremy Bouse
    2009-07-31T17:39:30+08:002009-07-31T17:39:30+08:00

    大多数现代邮件列表软件已经知道如何处理 VERP 消息,如果 MTA 被正确配置为将它们传递回邮件列表软件。对于GNU Mailman,您应该查看名为“如何使用带有 - 分隔符(后缀收件人分隔符)的 VERP?”的常见问题解答页面。

    如果您正在制作自己的自定义时事通讯软件来处理此问题,您应该问自己为什么要重新发明轮子,而不是使用可以为您简单轻松地处理任务的现有应用程序。

    • 1

相关问题

  • 如何使用 Postfix 将邮件中继到另一台机器?

  • 针对大量邮件的 SMTP 服务的建议 [关闭]

  • 在 Ubuntu 上设置电子邮件服务器

  • 多操作系统环境的首选电子邮件客户端

  • Exchange 2007 的备份解决方案

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve