如何设置自动响应的Postfix自动应答器

如何使用自动响应设置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.comfalko+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链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏