Answers:
以下是安装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
这里有一个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
这里有一些想法,需要一些定制才能满足您的确切需求。我发现的第一件事是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脚本(或您选择的语言),因此您可以根据自己的喜好使其简单或复杂。