通过 Postfix 转发邮件时进行 SRS/发件人重写

通过 Postfix 转发邮件时进行 SRS/发件人重写

有没有办法执行 SRS,或者使用 Postfix 执行类似操作?

当我收到来自[电子邮件保护],我将其转发(通过 catchall)到[电子邮件保护],但 GMail 正在检查 SPF,发现我的服务器无权代表 example.org 发送邮件。我想将发件人重写为 something@myserver,同时将发件人保留为[电子邮件保护]

答案1

以下是安装步骤帖子数来自 Timo Röhling。这些说明似乎适用于许多 Unix 版本,包括 Ubuntu 14.04。

# Debian/Ubuntu preparations:
sudo apt-get install cmake sysv-rc-conf

# download and compile the software:
cd ~
wget https://github.com/roehling/postsrsd/archive/master.zip
unzip master
cd postsrsd-master/
make
sudo make install

# or alternatively install binary from later Ubuntu repositories
sudo apt-get install postsrsd

# Add postfix configuration parameters for postsrsd:
sudo postconf -e "sender_canonical_maps = tcp:127.0.0.1:10001"
sudo postconf -e "sender_canonical_classes = envelope_sender"
sudo postconf -e "recipient_canonical_maps = tcp:127.0.0.1:10002"
sudo postconf -e "recipient_canonical_classes = envelope_recipient"

# Add SRS daemon to startup (Red Hat 6/CentOS):
sudo chkconfig postsrsd on
# Add SRS daemon to startup (Debian/Ubuntu):
sudo sysv-rc-conf postsrsd on
# Start SRS daemon:
sudo service postsrsd restart
#Reload postfix:
sudo service postfix reload

答案2

这里有一篇 2012 年的教程,介绍如何在 Debian 上使用 Postfix 设置 SRS:http://blog.phusion.nl/2012/09/10/mail-in-2012-from-an-admins-perspective/

这是 2013 年的 Ubuntu 教程:http://www.ameir.net/blog/archives/71-installing-srs-extensions-on-postfix-ubuntudebian.html

答案3

以下是一些想法,需要进行一些定制才能满足您的确切需求。我发现的第一件事是 Postfix 似乎不喜欢对别名地址(即virtual_alias_domain/ virtual_alias_maps)做任何事情。但这没关系,因为实际上只要最终一切都能正确交付,这些地址叫什么并不重要。

因此,在 Postfix 的中main.cf添加以下几行:

virtual_mailbox_domains = example.org
# Feel free to give munger a better name, just update master.cf appropriately
virtual_transport = munger:

接下来,你需要告诉 Postfixmunger实际的含义。添加以下内容(参见管道(8)以获得更多选项)。因此将以下内容添加到master.cf

munger    unix  -       n       n       -       -       pipe
  flags= user=nobody argv=/usr/bin/redirector

根据上述内容,任何目的地example.org都会被发送到/usr/bin/redirector程序(或任何你想叫它的名字)。对于大多数正常的事情,你需要一些命令行参数来获取发送者/接收者的信息(同样,pipe(8)有更多详细信息),但由于发送者和目标地址是固定的,因此命令行上不需要任何其他东西。

现在你只需要编写程序redirector。这对我有用:

#!/bin/sh
/usr/sbin/sendmail -bm -f 'something@myserver' '[email protected]'

它是一个常规的 shell 脚本(或您选择的语言),因此您可以根据需要使其简单或复杂。

答案4

您最好忘记整个 spf 事情并改用 dkim。

这是一篇描述 SPF 问题的好文章

相关内容