如何自动添加对发送电子邮件免责声明使用alterMIME(Postfix在Debian Squeeze)

本教程介绍如何安装和使用alterMIME。  alterMIME是一种可以自动向电子邮件添加免责声明的工具。 在这篇文章中,我...

本教程将介绍如何安装和使用alterMIME 。 alterMIME是一种可以自动向电子邮件添加免责声明的工具。 在本文中,我将解释如何在Debian Squeeze上将其安装为Postfix过滤器。

1初步说明

我假设Postfix已经安装完整功能 - 我不会在本教程中解释如何设置Postfix和配置电子邮件帐户。

2安装alterMIME

alterMIME可以安装如下:

apt-get install altermime

接下来,我们使用主目录/ var / spool / filter filter创建用户过滤器 - alterMIME将作为该用户运行:

useradd -r -c "Postfix Filters" -d /var/spool/filter filter
mkdir /var/spool/filter
chown filter:filter /var/spool/filter
chmod 750 /var/spool/filter

之后,我们创建执行alterMIME的脚本/ etc / postfix /免责声明。 Debian的alterMIME包附带一个示例脚本,我们可以简单地复制到/ etc / postfix /免责声明

cp /usr/share/doc/altermime/examples/postfix_filter.sh /etc/postfix/disclaimer
chgrp filter /etc/postfix/disclaimer
chmod 750 /etc/postfix/disclaimer

现在这个脚本的问题是它不区分传入和传出的电子邮件 - 它只是为所有的邮件添加免责声明。 通常,您只需要发布电子邮件的免责声明,即使不是所有的发件人地址。 因此,我修改了/ etc / postfix /免责声明脚本有一点 - 我们会在一分钟之内来​​。

现在,我们创建文件/ etc / postfix / disclaimer_addresses ,其中包含所有发件人电子邮件地址(每行一个),alterMIME应添加免责声明:

vi /etc/postfix/disclaimer_addresses

falko@example.com
joe@example.org
tom@example.net

现在我们打开/ etc / postfix /免责声明 ,并修改如下(我已经标记了我已经更改的部分):

vi /etc/postfix/disclaimer

#!/bin/sh
# Localize these.
INSPECT_DIR=/var/spool/filter
SENDMAIL=/usr/sbin/sendmail

####### Changed From Original Script #######
DISCLAIMER_ADDRESSES=/etc/postfix/disclaimer_addresses
####### Changed From Original Script END #######

# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69

# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15

# Start processing.
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }

cat >in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }

####### Changed From Original Script #######
# obtain From address
from_address=`grep -m 1 "From:" in.$$ | cut -d "<" -f 2 | cut -d ">" -f 1`

if [ `grep -wi ^${from_address}$ ${DISCLAIMER_ADDRESSES}` ]; then
  /usr/bin/altermime --input=in.$$ \
                   --disclaimer=/etc/postfix/disclaimer.txt \
                   --disclaimer-html=/etc/postfix/disclaimer.txt \
                   --xheader="X-Copyrighted-Material: Please visit http://www.company.com/privacy.htm" || \
                    { echo Message content rejected; exit $EX_UNAVAILABLE; }
fi
####### Changed From Original Script END #######

$SENDMAIL "$@" <in.$$

exit $?

接下来,我们需要保存我们免责声明文本的文本文件/etc/postfix/disclaimer.txt 。 Debian的alterMIME包带有一个我们现在可以使用的示例文本(当然,如果你喜欢,你可以修改它):

cp /usr/share/doc/altermime/examples/disclaimer.txt /etc/postfix/disclaimer.txt

最后,我们必须告诉Postfix,它应该使用/ etc / postfix /免责声明脚本向发布的电子邮件添加免责声明。 打开/etc/postfix/master.cf并添加-o content_filter = dfilt:smtp行:

vi /etc/postfix/master.cf

#
# Postfix master process configuration file.  For details on the format
# of the file, see the master(5) manual page (command: "man 5 master").
#
# Do not forget to execute "postfix reload" after editing this file.
#
# ==========================================================================
# service type  private unpriv  chroot  wakeup  maxproc command + args
#               (yes)   (yes)   (yes)   (never) (100)
# ==========================================================================
smtp      inet  n       -       -       -       -       smtpd
   -o content_filter=dfilt:
[...]

在同一个文件的末尾,添加以下两行:

[...]
dfilt     unix    -       n       n       -       -       pipe
    flags=Rq user=filter argv=/etc/postfix/disclaimer -f ${sender} -- ${recipient}

之后重新启动Postfix:

/etc/init.d/postfix restart

而已! 现在,请从/ etc / postfix / disclaimer_addresses中列出的地址发送的发送电子邮件中添加免责声明