我拥有的是:
Windows 服务器使用自己的应用程序生成电子邮件并将其发送到中继服务器 (2) - 运行正常
中继服务器,发送从(1)收到的电子邮件 - CentOS - 工作正常
我需要额外配置 CentOS postfix 以将退回邮件发送到 Windows 服务器(使用指定端口上的自己的应用程序处理它们)。我尝试在 /etc/postfix/transport 行中添加:
test.pl bounced:[12.34.56.78]:29990
然后运行
postmap /etc/postfix/transport
但我不知道我应该做些什么才能让它发挥作用。
在邮件日志中我有:
Mar 6 12:00:22 ubuntu postfix/qmgr[1633]: 9CBB260899: from=<root@ubuntu>, size=197, nrcpt=1 (queue active)
Mar 6 12:00:22 ubuntu postfix/qmgr[1633]: warning: connect to transport private/bounced: No such file or directory
Mar 6 12:00:22 ubuntu postfix/error[1744]: 9CBB260899: to=<[email protected]>, relay=none, delay=1890, delays=1890/0/0/0.01, dsn=4.3.0, status=deferred (mail transport unavailable)
答案1
在传输中,您通常只有 4 个选项。本地、虚拟、中继或默认。如果您要创建另一个,则需要在 master.cf 文件中定义它的作用。这就是您收到文件未找到错误的原因。您已告诉它将其发送到反弹,但未创建反弹。
你应该看看这让您朝着正确的方向前进。
答案2
我做了什么来让它发挥作用:
- 编写了一个python脚本,通过TCP将标准输入发送到反弹服务器(固定IP和端口)
在 postfix master.cf 文件中添加了一行,用于将退回的电子邮件发送到 python 脚本:
bounced unix - n n - - pipe user=bounce argv=/etc/postfix/mailpipe.py
在 /etc/services 和相应的 postfix 服务文件中添加一行:
bounced 23232/tcp # bounce
为 Postfix 制作传输文件:
domain.com bounced:[12.34.56.78]:23232
“编译”的postmap传输文件:
postmap /etc/postfix/transport
使用户退出并将其添加到组 postfix
重启者:
postfix reload