如何使用自动响应设置Postfix自动应答器
版本1.0
作者:Falko Timme
自动响应是Postfix MTA的自动回复。 它允许您从shell中为电子邮件帐户创建自动回复消息,并通过电子邮件将自动回复者文本发送到某个电子邮件地址。
我不会保证这将为您工作!
1初步说明
我在这里描述的设置适用于我所有的“使用Postfix,Courier,MySQL和SquirrelMail的虚拟用户和域”设置。 我不保证它将适用于其他设置。
我在这里使用这样的“虚拟用户和域名与Postfix,Express,MySQL和松鼠邮件”,并设置了我想要创建自动回复的电子邮件帐户falko@example.com。
2安装自动应答
我们可以下载并安装Autoresponse,如下所示:
cd /tmp
wget http://www.nefaria.com/scriptz/autoresponse-1.6.2.tar.gz
tar xvfz autoresponse-1.6.2.tar.gz
cd autoresponse
useradd -d /var/spool/autoresponse -s `which nologin` autoresponse
mkdir -p /var/spool/autoresponse/log /var/spool/autoresponse/responses
cp ./autoresponse /usr/local/sbin/
chown -R autoresponse:autoresponse /var/spool/autoresponse
chmod -R 0770 /var/spool/autoresponse
然后我们编辑/etc/postfix/master.cf
:
vi /etc/postfix/master.cf
在文件的开头,你应该看到一行
[...] smtp inet n - - - - smtpd [...] |
修改它,使其看起来如下(第二行必须以至少一个空格开头!):
[...] smtp inet n - - - - smtpd -o content_filter=autoresponder:dummy [...] |
在文件末尾附加以下两行(再次,第二行必须以至少一个空格开头!):
[...] autoresponder unix - n n - - pipe flags=Fq user=autoresponse argv=/usr/local/sbin/autoresponse -s ${sender} -r ${recipient} -S ${sasl_username} -C ${client_address} |
然后运行...
postconf -e 'autoresponder_destination_recipient_limit = 1'
...并重新启动Postfix:
/etc/init.d/postfix restart
如果您具有shell访问权限,并且希望这些用户能够在shell上自己创建自动回复消息,则必须将每个用户帐户添加到自动响应
组中,例如系统用户falko的
以下内容:
usermod -G autoresponse falko
但是,如果您想以root用户身份创建所有自动回复消息(或使用电子邮件功能创建自动回复消息 - 我会在一段时间内到达),则不需要这样做。
3使用自动应答
跑
autoresponse -h
了解如何使用自动应答:
server1:~# autoresponse -h
/usr/local/sbin/autoresponse [-r {recipient email} -s {sender email} -S {sasl username} -C {client ip}]
[-e {email address}] [-d {email address}] [-E {email address}] [-D {email address}] [-h]
-r, -s, -S, and optionally -C must be used together to
specify a recipient, sender, sasl username, and client IP of an autoresponse message.
Normally you configure these in postfix's "master.cf"
but they can be used from the terminal as well (only for testing purposes!).
If this is executed from a terminal, you'll need to hit CTRL-D
when you are finished typing your autoresponse message.
-e is used to create a new autoresponse or edit an existing one for the specified user.
If a disabled autoresponse message exists, it will be ignored and a new message will be created.
-d is used to disable an existing active autoresponse message.
-E is used to enable an existing autoresponse message. If both a disabled AND and an active autoresponse message exist,
the active message will be overwritten by the disabled one.
-D is used to delete an existing autoresponse message, it will not delete disabled autoresponse messages.
-h prints this help menu
server1:~#
要为帐户falko@example.com
创建自动回复消息,我们运行...
autoresponse -e falko@example.com
...并输入自动回复文本:
I will be out the week of March 2 with very limited access to email. I will respond as soon as possible. Thanks! Falko |
(您无法使用此方法设置主题;默认情况下,自动回复消息的主题将为“ 离开办公室”
。)
现在,从另一个帐户发送一封电子邮件至falko@example.com
,您应该回复自动回复邮件。
要禁用现有的自动应答器,请运行
autoresponse -d falko@example.com
要启用停用的自动应答器,请运行
autoresponse -E falko@example.com
要删除自动回复,请运行
autoresponse -D falko@example.com
您可以修改/ usr / local / sbin / autoresponse中
的RESPONSE_RATE
变量。 它定义了每个电子邮件地址决定自动回复消息的发送频率的时间限制(以秒为单位)。 默认值为86400(秒),这意味着如果您发送电子邮件至falko@example.com
并收到自动回复消息,并在86400秒(一天) 内向falko@example.com
发送第二封电子邮件,则不会再收到另一封邮件自动回复消息
vi /usr/local/sbin/autoresponse
[...] declare RESPONSE_RATE="86400" [...] |
4通过电子邮件创建/删除自动应答消息
而不是在命令行上创建自动回复消息,也可以通过电子邮件来完成。 如果您想为电子邮件地址falko@example.com
创建一个自动回复消息,请发送电子邮件至falko@example.com
到falko+autoresponse@example.com
(这只有在您设置SMTP-AUTH时才有效服务器)。 该电子邮件的主题将成为自动回复消息的主题(这样您可以定义与外拨不同的主题),电子邮件正文将成为自动回复文本。
如果您以这种方式创建自动应答器,Autoresponse将向您发送一封像这样的电子邮件(以便您知道操作是否成功):
Autoresponse enabled for falko@example.com by SASL authenticated user: falko@example.com from: 192.168.0.200
如果该电子邮件地址已经有一个活动的自动回复者,那么它将被禁用(即,该地址根本就没有活动的自动回复,您将收到一封电子邮件,告诉你:
Autoresponse disabled for falko@example.com by SASL authenticated user: falko@example.com from: 192.168.0.200
)。
这意味着电子邮件功能是一个切换开关 - 如果没有sautoresponder,它将被创建,如果有自动应答器,它将被禁用。
5链接
- 自动响应: http : //nefaria.com/?page_id=7