Postfix部署【8】本地邮件投递代理

Maildrop是本地邮件投递代理(MDA), 支持过滤(/etc/maildroprc)、投递和磁盘限额(Quota)功能。

Maildrop是一个使用C++编写的用来代替本地MDA的带有过滤功能邮件投递代理,是courier邮件系统组件之一。它从标准输入接受信息并投递到用户邮箱;maildrop既可以将邮件投递到mailboxes格式邮箱,亦可以将其投递到maildirs格式邮箱。同时,maildrop可以从文件中读取入站邮件过滤指示,并由此决定是将邮件送入用户邮箱或者转发到其它地址等。和procmail不同的是,maildrop使用结构化的过滤语言,因此,邮件系统管理员可以开发自己的过滤规则并应用其中。

我们在此将使用maildrop来代替postfix自带的MDA,并以此为基础扩展后文的邮件杀毒和反垃圾邮件功能的调用。Maildrop如果以RPM包安装会自动创建vuser用户及vgroup用户组,专门用于邮件的存储;使用源码安装则需要手动创建用户和用户组,且ID大于1000,即上文创建的用户vmail(1001)和组vmail(1001)。

依赖courier-authlib的头和库文件
将courier-authlib的头文件及库文件链接至/usr目录(编译 maildrop 时会到此目录下找此些相关的文件)

$ ln -sv /usr/local/courier-authlib/bin/courierauthconfig /usr/bin
$ ln -sv /usr/local/courier-authlib/include/* /usr/include/
$ echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf.d/courier-authlib.conf
$ ldconfig -v

解决需要依赖的 pcre 头文件和库文件
maildrop 需要 pcre 的支持,因此,需要事先提供 pcre 的头文件及库文件等开发组件,如果选择以 yum 源来提供 pcre,请确保安装 pcre-devel 包。

$ yum -y install pcre-devel

安装 courier-unicode
字符集库文件,相当 于 RPM 方式安装的 courier-authlib-devel 包,不安装这个会导致编译 maildrop 时报错。

$ tar xvf courier-unicode-1.1.tar.bz2
$ cd courier-unicode-1.1
$ ./configure
$ make && make install

安装 maildrop

$ tar xvf maildrop-2.7.2.tar.bz2
$ cd maildrop-2.7.2
$ ./configure \
--enable-sendmail=/usr/sbin/sendmail \
--enable-syslog=1 \
--enable-maildirquota \
--enable-maildrop-uid=1001 \
--enable-maildrop-gid=1001 \
--with-trashquota \
--with-dirsync
$ make
$ make install

$ echo '/usr/local/lib' > /etc/ld.so.conf.d/courier-unicode.conf

检查安装结果,请确保有“Courier Authentication Library extension enabled.”一句出现。

$ maildrop -v
maildrop 2.6.0 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.

创建配置文件 /etc/maildroprc
首先指定maildrop的日志记录位置:

$ vim /etc/maildroprc
logfile "/var/log/maildrop.log"
 
$ touch /var/log/maildrop.log
$ chown vmail.vmail /var/log/maildrop.log

配置Postfix的master.cf文件

$ vim /etc/postfix/master.cf
maildrop  unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

【注意】maildrop 前面不要有空格,下面一行前面要两个空格。

切换 Postfix 的 MDA

$ vi /etc/postfix/main.cf
# virtual_transport = virtual
virtual_transport = maildrop

重启服务

$ service postfix restart
$ service courier-authlib restart
$ service httpd restart

测试
可以进行发信测试,如果日志中的记录类同以下项 maildrop 投递,则安装成功。

Apr 15 15:33:54 localhost postfix/pipe[11964]: 04B92147CE9: to=, relay=maildrop, delay=0.16, delays=0.07/0.03/0/0.07, dsn=2.0.0, status=sent (delivered via maildrop service)

【ps】如果想使用 maildrop 来进行邮件过滤只需要在 /etc/maildroprc 中使用 maildrop 基于域的过滤条件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值