通过后缀转发邮件时的SRS /发件人重写


15

有什么方法可以执行SRS,或者使用Postfix进行类似操作?

当我从user@example.org收到邮件时,我将其转发(通过邮件接收器)到something@gmail.com,但是GMail正在检查SPF,并且看到我的服务器无权代表example.org发送邮件。我想将发件人重写为something @ myserver,同时将发件人保留为user@example.org。

Answers:


6

以下是安装TimoRöhling的postsrsd的步骤。这些说明似乎适用于许多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

1
汇总链接页面上的内容-将来可能无法加载或包含不同的内容。
89c3b1b8-b1ae-11e6-b842-48d705 2014年

不允许我添加更多链接。因此,这里是在注释中:有关更多配置选项,请参见github.com/roehling/postsrsd。这些步骤基于本教程:mind-it.info/forward-postfix-spf-srs
Erik van Oosten

这没有添加细节,而是增加了更多链接。
89c3b1b8-b1ae-11e6-b842-48d705 2014年

PostSRSd是我为带有postfix的srs找到的最佳工具。+1
Billynoah 2015年

“将SRS守护程序添加到启动”在ubuntu 14.04上不需要该行。重启后该服务将自动启动。因此,无需安装sysv-rc-conf
the_nuts


1

这里有一些想法,需要一些定制才能满足您的确切需求。我发现的第一件事是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:

接下来,您需要告诉Postfix munger真正的含义。添加以下内容(有关更多选项,请参见pipe(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' 'something@gmail.com'

这是一个常规的Shell脚本(或您选择的语言),因此您可以根据自己的喜好使其简单或复杂。


1
这不是srs,您不能使用它来将跳动安全地传递回原始发件人。
JasperWallace 2013年

-3

您最好忘记整个spf内容,而改用dkim。

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


尝试告诉Google-因为是Gmail而不是发帖人进行检查。
安迪·谢拉姆

Google正在检查OP设置的记录。
cstamas

3
那篇文章写于2004年,其中一些说法不再正确。例如,根据RFC4408,SPF现在具有其自己的DNS记录类型。几乎本文的其余所有内容都归结为“破坏了简单的转发”和“对信封的任意重写-破坏了任意使用信封的其他系统”。在我看来,前者是正确的,但值得付出代价。后者是正确且艰难的-一种任意使用并不能比另一种更好。
MadHatter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.