Postfix邮件系统的组成及原理
用到的主要协议和软件 1. 邮件用户代理 (MUA) MUA 是一个邮件系统的客户端程序,它提供了阅读、发送、和接受电子邮件的用户接口,是用户和 MTA 之间的接口。常用软件 Windows 下有 outlook 、 Foxmail等; Linux 下有 Thunderbird 、 Evolution 等 . MUA 至少具有如下 3 个功能: a. 撰写邮件 b. 显示邮件 c. 处理邮件 2. 邮件传输代理 (MTA) MTA 主要用于存储和转发邮件,也可以说是邮件服务器软件的总称。常用软件:windows 下的 exchange,Linux 下 Sendmail 、 Postfix 、 Qmail 等; MTA 主要功能: a. 接收和传递由客户端发送的邮件 b. 维护邮件队列,以便客户端不必一直等到邮件真正发送出去 c. 接收客户的邮件,并将邮件放置在缓冲区存储,直到用户连接从而收取邮件 d. 有选择的转发和拒绝转发接收到的、目的地为另一个主机的消息 3. 邮件分发代理 (MDA) MDA 主要负责将 MTA 接收的邮件传递到收件人的邮箱 (mailbox) 中 4. 电子邮件基本的工作流程 用户 ----MUA---MTA...........MTA---MUA---- 用户 5. 相关协议 1). 简单邮件传输协议 SMTP 监听 25 端口; 邮件的发送过程中有两处要用到这个协议: a. 发送邮件的 MUA 与 MTA 建立链接并发送邮件 b.MTA 之间的邮件转发 2) 邮件访问协议 a.POP3(Post Office Protocol) Pop 协议要检测用户的登录名和口令,然后将用户的邮件从服务器移动到用户本地桌面系统的 MUA 中,监听 110 端口 b.IMAP(Internet message access protocol) IMAP 是 Pop 的替代品,踏出了提供与 pop 相同的基本功能外,还增加了对邮箱同步的支持,即 IMAP 提供了如何远程维护服务器上的邮件箱的功能,监听 143端口 Postfix 系统更新 , 添加支持 mysql 模块,构建邮件系统 1.Postfix 添加 Mysql 模块 #tar zxf postfix-2.10.2.tar.gz #cd postfix-2.10.2 #make -f Makefile.init makefiles // 需要 db*-devel , gcc 支持 #make upgrade //make -f 后边不添加 mysql 的头文件及库文件参数,makeupgrade 更新后 postfix 将不支持 mysql 服务,可以使用 postconf-m 查看,若不支持 mysql 需要重新解压 postfix 包重新更新,如下 首先需要安装 mysql-devel 开发包 #yum install mysql-devel #make -f Makefile.init makefiles \ >'CCARGS=-DHAS_MYSQL -I/usr/include/mysql' \ // 指定 mysql 的头文件所在目录 >'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm' // 指定 mysql 的库文件所在目录 #make upgrade // 更新后,再使用 postconf-m 查看可以支持 mysql 模块 2 . 安装 PhpMyAdmin, 以 web 页面形式操作 Mysql 数据库 , 建立邮件用户信息: PhpMyAdmin 是一个以 PHP 为基础,以 Web-Base 方式架构在网站主机上的MySQL 的数据库管理工具,让管理者可用 Web 接口管理 MySQL 数据库。借由此Web 接口可以成为一个简易方式输入繁杂 SQL 语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于 phpMyAdmin 跟其他 PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的 HTML 页面,也就是于远端管理 MySQL 数据库,方便的建立、修改、删除数据库及资料表。也可借由 phpMyAdmin 建立常用的 php 语法,方便编写网页时所需要的 sql 语法正确性。 #yum install httpd php php-mysql #tar -zxf phpMyAdmin-3.5.7-all-languages.tar.gz -C /var/www/html #cd /var/www/html/ #mv phpMyAdmin-3.5.7-all-languages/ phpmyadmin #cd phpmyadmin/ #cp config.sample.inc.php config.inc.php #vi config.inc.php $cfg['blowfish_secret'] = 'tian'; // 第二个引号中必须要有字符串,可任意 #/etc/init.d/httpd start 用浏览器访问 127.0.0.1/phpmyadmin 就可以以 web 形式访问 mysql ,用户名密码仍未 mysql 的 浏览器访问 mysql 后,建立库 (linux), 在建立表 email ,结构内容如下 username varchar(25) test@ty.com password varchar(20) test domain varchar(15) ty.com mailbox varchar(15) ty.com/test/ #useradd -u 800 email // 添加邮件用户 email mysql> grant all on linux.* to email@localhost identified by'email'; Query OK, 0 rows affected (0.00 sec) // 用户授权 postconf -d // 查看默认设置 postconf -n // 查看当前设置 3. 配置 Postfix [iyunv@ty ~]# postconf -e virtual_mailbox_base=/home/email/ [iyunv@ty ~]# postconf -e virtual_gid_maps=static:800 [iyunv@ty ~]# postconf -e virtual_uid_maps=static:800 #vi mysql-alias.cf user = email password = email dbname = linux table = email select_field = username where_field = username #vi mysql-domains.cf user = email password = email dbname = linux table = email select_field = domain where_field = domain #vi mysql-mailboxs.cf user = email password = email dbname = linux table = email select_field = mailbox where_field = username #postconf -e "virtual_alias_maps =mysql:/etc/postfix/mysql-alias.cf" #postconf -e "virtual_mailbox_domains =mysql:/etc/postfix/mysql-domains.cf" #postconf -e "virtual_mailbox_maps =mysql:/etc/postfix/mysql-mailboxs.cf" #postmap -q "test@ty.com"mysql:/etc/postfix/mysql-alias.cf #postmap -q "ty.com"mysql:/etc/postfix/mysql-domains.cf #postmap -q "test@ty.com"mysql:/etc/postfix/mysql-mailboxs.cf 现在就可以测试发送 mail 到 test@ty.com, 若发送成功则会在 /home/email 目录下生成 ty.com 邮件目录 -------------------------------------------------------------- Postfix 只承担邮件系统中的 MTA 功能,一个完整的邮件系统还需要很多其他的功能,如 POP/IMAP 服务、 Web 界面客户端、垃圾邮件过滤等,这些功能 Postfix都是无法完成的,需要第三方软件的支持; 下面就开是添加各个软件: Postfix+mysql+dovecot: Dovecot 软件是一种在 Linux 下使用的开源软件,他可以提供 POP3 和 IMAP 服务。 Dovecot 将安全作为主要设计目标,速度快、占用内存小、配置简单,可以在各种规模的场合使用。 在实际使用中,常见的邮件系统使 Postfix 、 Dovecot 和 Mysql 三者配合搭建的邮件服务器。其中 Postfix 作为邮件发送服务, Dovecot 作为邮件接受服务,而 Mysql作为帐号存储服务器。 #yum install dovecot dovecot-mysql #vi dovecot.conf listen = *, :: #cd /etc/dovecot/conf.d #vi 10-auth.conf !include auth-system.conf.ext !include auth-sql.conf.ext #vi 10-mail.conf mail_location = maildir:/home/vemail/%d/%n //maildir 不变,只变后边路径 first_valid_uid = 888 #cat auth-sql.conf.ext // 需要有 /etc/dovecot/dovecot-sql.conf.ext 文件 #cd /usr/share/doc/dovecot-2.0.9/example-config #cp dovecot-sql.conf.ext /etc/dovecot/ #vi dovecot-sql.conf.ext driver = mysql connect = host=localhost dbname=vmail user=email password=email default_pass_scheme = PLAIN password_query = \ SELECT username, domain, password \ FROM postfix WHERE username = '%u' user_query = SELECT mailbox, 888AS uid, 888 AS gid FROMpostfix WHERE username = '%u' //from+ 表, select+ 表的内容选项 配置文件修改好后,测试 dovecot 是否成功 #telnet localhost 110 Trying ::1... Connected to localhost. Escape character is '^]'. +OK Dovecot ready. user test@ty.com +OK pass test +OK Logged in. 若登录出现 Loggedin. 则 dovecot 成功 --------------------------------------------------------------------------- 添加 Extmail 软件,以 web 方式操作邮件系统 Extmail 是一个以 perl 语言编写,面向大容量 /ISP 级应用,免费的高性能Webmail 软件,主要包括 ExtMail 、 Extman 两个部分的程序套件。 ExtMail 套件用于提供从 浏览器 中登录、使用 邮件系统 的 Web 操作界面,而 Extman 套件用于提供从浏览器中管理邮件系统的 Web 操作界面。 Extmail 套件可以提供给普通 邮件 用户使用,而 Extman 套件可以提供给 邮件系统 的 管理员 使用 . extmail 包含两个包: extmail-1.2.tar.gz // 为前端邮件工具,配置文件为 webmail.cf extman-1.1.tar.gz // 为后端管理工具 webman.cf #mkdir /var/www/extsuite #tar zxf extmail-1.2.tar.gz -C /var/www/extmail #tar zxf extman-1.2.tar.gz -C /var/www/extman #cd extman/docs #vi init.sql // 可以修改 postmaster 和 root 的密码 #mysql -uroot -pwestos < extmail.sql // 导入数据库 #mysql -uroot -pwestos < init.sql #cd extmail #cp mysql_virtual_alias_maps.cf /etc/postfix/mysql-alias.cf #cp mysql_virtual_domains_maps.cf /etc/postfix/mysql-domains.cf #cp mysql_virtual_mailbox_maps.cf /etc/postfix/mysql-mailbox.cf #postmap -q "postmaster@extmail.org"mysql:/etc/postfix/mysql-alias.cf #postmap -q "postmaster@extmail.org"mysql:/etc/postfix/mysql-mailbox.cf #postmap -q "extmail.org"mysql:/etc/postfix/mysql-domains.cf 现在就可以测试给 postmaster@extmail.org 发 mail ,若 /home/vmail/ 下创建目录成功,则 ok #cp webmail.cf.default webmail.cf #vi webmail.cf SYS_LOG_ON = 0 // 日志功能关闭 SYS_MAILDIR_BASE = /home/vmail // 为系统用户,邮件存放目录 SSYS_MYSQL_USER = extmail // 为 extmail 库的用户,默认 extmail.sql 生成 SYS_MYSQL_PASS = extmail #chown -R vmail.vmail cgi/ // 修改 cgi 目录及其子目录权限,使该用户可以访问 #vi /etc/httpd/conf/httpd.conf // 添加邮件虚拟用户 NameVirtualHost *:80 // 添加内容 INSTALL 文件里有,只需根据自己的实际情况稍做改动即可 <VirtualHost *:80> ServerName mail.example.com DocumentRoot /var/www/extsuite/extmail/html/ ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi Alias /extmail /var/www/extsuite/extmail/html SuexecUserGroup vmail vmail // 此处为系统用户 </VirtualHost> #/etc/init.d/httpd restart 使用 extmail 客户端时,必须先用 mail 命令发送一封邮件,以激活 extmail
登录 extmail 注册新用户使会用到 extman 后台管理端,所以须配置好 extman 后才可以注册 会出现的问题 ERROR1 :
因为没有配置文件 /var/www/extsuite/extmail/webmail.cf ,所以出现如此问题 , 执行 #cp webmail.cf.default webmail.cf 即可 ERROR2:
因为 /extmail/cgi/index.cgi 权限不符,须执行 #chown -R email.email cgi/ //-R 递归, email.email 为系统用户, user.group ERROR3 :
少了 perl-CGI 包支持 #yum install perl-CGI ERROR4 :
配置文件 webmail.cf 中日志功能打开( SYS_LOG_ON= 1 ),但没有指定目录,将其关闭 =0 即可 , 或者在 cpan.org 网站中下载 Unix-Syslog 包安装后,即可: #tar -zxf Unix-Syslog-1.1.tar.gz #cd Unix-Syslog #perl Makefile.PL // 可能会出现报错 Can't locate ExtUtils/MakeMaker.pm in @INC // 缺少 perl-ExtUtils-MakeMaker 包 #yum install perl-ExtUtils-MakeMaker 再次执行,如下即可 #make install 注: mysql 里设置的域不以定要和 httpd.conf 中的虚拟主机的 ServerName 相同,登录时填写的域须和 mysql 中一致, http 中的虚拟主机 domain 须加入 /etc/hosts 里地址解析,否则用 extmail 客户端登录不上 extman 后台管理: #cd /var/www/extsuite/extman #cp webman.cf.default webman.cf 将以下两行添加到 httpd.conf 中(即上一步添加 extmail 内容内) ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi Alias /extman /var/www/extsuite/extman/html 重启 apache #vi webman.cf SYS_MAILDIR_BASE = /home/email SYS_CRYPT_TYPE = plain 登录 extman 管理端
#vim webman.cf SYS_CAPTCHA_ON = 1 // 验证码开关,此时没有安装验证码包,先关闭 (=0) 就可以进入 extman SYS_CAPTCHA_LEN = 6 // 控制验证码长度 可能会出现的 ERROR:
解决: #vi webman.cf SYS_SESS_DIR = /tmp/extman/ // 去掉后边的 extman 目录或者在 /tmp 下mkdir 目录,并设置其权限和 tmp 相同 现在就可以进入 extmail 后台管理端 extman ,但是会在 System 菜单中出现Nosuch file or directory 问题,如下
所以需要执行 : #vi /etc/rc.local /var/www/extsuite/extman/daemon/cmdserver & // 添加此行 #/var/www/extsuite/extman/daemon/cmdserver &
执行后刷新 extman 网页,此问题就会消失 想要支持验证码功能,须安装 perl-GD-2.45-1.el6.rfx.x86_64 包,因为这包存在依赖性,所以选择 yum 的本地安装 #yum localinstall perl-GD-2.45-1.el6.rfx.x86_64 打开验证码开关,刷新既可以看到验证码 vi webmail.cf SYS_SHOW_SIGNUP = 1 // 控制自由注册 安装验证码包: yum localinstall perl-GD-2.45-1.el6.rfx.x86_64.rpm //localinstall 安装本地包,并检查依赖性 , 安装成功后,在 webman.cf 中打开验证功能,刷新 extman 网页如下,就可以使用验证码功能,防止恶意登录、注册
开启 /var/log/maillog 日志记录功能: vi /var/www/extsuite/extmail/webmail.cf SYS_LOG_ON=1 // 打开日志功能 刷新 extmail 前端,会进不去报错没有 Unix::syslog, 则需要安装之,可以到cpan.org 上下载 Unix-Syslog-1.1.tar.gz 解压安装 #cd Unix-Syslog #perl Makefile.PL // 会提示缺少安装包 Can't locate ExtUtils/MakeMaker.pm in @INC #yum install perl-ExtUtils-MakeMaker // 安装完后继续执行 perlMakefile.PL #perl Makefile.PL // 若如下显示,则依赖性解决,可以makeinstall
#make install extman 图形日志的安装: 现在还不支持图形日志,进入 extman 后端管理 web 界面下点击 GraphLog 会出现如下报错
需要 rrdtool-perl 包的支持 安装好后仍不能显示图形,仍需以下步骤 #cd /var/www/extsuite/extman/addon #cp -r mailgraph_ext/ /usr/local/ #cd /usr/local/mailgraph_ext #./mailgraph-init start
报错,未安装 File-Tail-0.99.3.tar.gz 包 进入解压后的目录,安装 #perl MakeFile.PL #make #make install #cd /usr/local/mailgraph_ext #./mailgraph-init start
报错,未安装 perl-Time-HiRes 包 #yum install perl-Time-HiRes.x86_64 #./mailgraph-init start
无报错,安装完成; 现在刷新 extman 就可以看到图形日志 vi /etc/rc.local // 加入开机启动 /usr/local/mailgraph_ext/mailgrahp-init start // 添加 ------------------------------------------------------------------------------------------------------- 基于 web 页面的邮件系统添加 dovecot 支持 (Postfix+Extmail+Mysql+Dovecot) 基于前边 extmail 、 dovecot 已安装,现在只需修改 dovecot 配置即可 #vi/etc/dovecot/conf.d/10-mail.conf mail_location =maildir:/home/email/%d/%n/Maildir first_valid_uid= 800 #vi/etc/dovecot/dovecot-sql.conf.ext connect =host=localhost dbname=extmail user=extmail password=extmail defdefault_pass_scheme= PLAIN password_query= \ SELECTusername, domain, password \ FROM mailboxWHERE username = '%u' user_query =SELECT maildir, 800 AS uid, 800 AS gid FROM mailbox WHERE
username ='%u' dovecot 配置好后,启动,测试 dovecot( 使用的端口 110) 是否配置正确
如此,则配置成功 --------------------------------------------------------------------------------------- 使 Postfix 系统支持 cyrus-sasl 认证功能 (SMTP 认证机制 ) Postfix 服务器没有认证功能,任何一个客户端都可以通过 SMTP 与 Postfix 服务器进行连接,然后使用 RCPT 命令要求 Postfix 服务器转发邮件到收件人所在邮件服务器,也就是说,互联网上的任何计算机,不需要使用帐号就可以通过这台邮件服务器向任何邮箱发送邮件,这无疑为垃圾邮件的发送敞开了大门。 因此,我们需要在 SMTP 服务器中使用身份认证机制,只有通过身份认证的用户才能发送 SMTP 请求服务器发送邮件到目的地。认证帐号一般与接受邮件的帐号相同,可以是操作系统帐号,也可以是虚拟帐号,或者是保存在数据库中的用户帐号。 可以通过 CyrusSASL ( CyrusSimple Authentication and Security Layer )软件包实现。 #yum install cyrus-sasl-devel cyrus-sasl-plain #cd postfix-2.10.2 #make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS''AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lm -L/usr/lib64 -lsasl2 -lssl -lcrypto' 在 /postfix-2.10.2/README_FILES/ 目录下查看各个模块的安装介绍 SASL_README TLS_README MYSQL_README 需要根据情况修改各模块的头文件和库文件目录 查看 sasl 头文件和库文件目录 rpm-ql cyrus-sasl-devel #makeupgrade #/etc/init.d/postfixstart #postconf-e "smtpd_sasl_auth_enable = yes" // 激活 sasl 加密 , 是smtpd 不是 smtp smtpd_sasl_security_options= noanonymous // 限制某些登录方式,此处禁止采用匿名用户登录方式 验证认证方式: #postconf-a //postconf 命令用来显示 Postfix 当前的配置状态, -a 选项表示输出当前 cyrus 支持的 SASL 认证类型 dovecot 重启服务,测试: telnetlocalhost 25 // 测试显示有字段 AUTHLOGIN PLAIN ,则开启成功
EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。可以鉴别接收方是否支持 ESMTP( 扩展 SMTP) 协议,接收方将返回所有支持的扩展命令。 ESMTP 就是对标准 SMTP 协议进行的扩展。它与 SMTP 服务的区别仅仅是,使用 SMTP 发信不需要验证用户帐户,而用 ESMTP 发信时,服务器会要求用户提供用户名和密码以便验证身份。验证之后的邮件发送过程与 SMTP 方式没有两样。 #vi/etc/sasl2/smtpd.conf // 在 README_FILES/SASL_README 文件中 Thesql plugin 部分定义 pwcheck_method: auxprop auxprop_plugin:sql mech_list:PLAIN LOGIN CRAM-MD5 DIGEST-MD5 NTLM sql_engine:mysql sql_hostnames:127.0.0.1 sql_user:extmail sql_passwd:extmail sql_database:extmail sql_select:SELECT password FROM mailbox WHERE username = '%u@%r' // 需要根据 mysql 中的实际设置修改 // 注意:一定要把例子中 @ 符两边的单引号 '' 去掉,否则会报 SQL 语法错误 安装 cyrus-sasl-sql-2.1.23-13.el6_3.1.x86_64.rpm 使 sasl 认证信息加入 mysql #yumlocalinstall cyrus-sasl-sql-2.1.23-13.el6_3.1.x86_64.rpm #perl-MMIME::Base64 -e 'print encode_base64("\0test\@ty.com\0test");' AHRlc3RAdHkub3JnAHRlc3Q= // 括号里边加入数据库 extmail 里的邮件用户,因为 @ 为特殊字符,需要用 \ 转义, //the\0 is a null byte #telnetlocalhost 25 Trying127.0.0.1... Connectedto localhost. Escapecharacter is '^]'. 220ty2.com ESMTP Postfix ehlo localhost 250-ty2.com 250-PIPELINING 250-SIZE10240000 250-VRFY 250-ETRN 250-AUTHCRAM-MD5 DIGEST-MD5 LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250DSN authplain AHRlc3RAdHkub3JnAHRlc3Q= 2352.7.0 Authentication successful quit 2212.0.0 Bye Connectionclosed by foreign host. // 则 user 发送 mail 时的认证加入成功 ------------------------------ TLS 使邮件传输链路加密 #postconf-e "smtpd_tls_security_level = may" // 激活 TLS 加密 #postconf-e "smtpd_tls_session_cache_database =btree:/var/lib/postfix/smtpd_scache" #cd/etc/pki/tls/certs #makepostfix.pem // 制作证书和 key #postconf-e smtpd_tls_cert_file=/etc/pki/tls/certs/postfix.pem // 指定证书和 key 的目录 #telnetlocalhost 25 // 测试显示 STARTTLS 字符,则 ok
打开 thunderbird ,在 OutgoingServer 中编辑, Connectionsecurity 为 STARTTLS即可
smtpd_client_restrictions= check_client_access hash:/etc/postfix/access // 可以设置用此服务器发送邮件的主机 ( 客户端 ) dovecot 收信: 未加密 加密端口 pop3 110 995(pop3s) imap4 143 993(imap4s) postfix 发信 SMTP25 sasl 认证是通过 25 端口给发件用户加一认证,即发 mail 时需要认证 telnetlocalhost 110 // 测试 dovecot 是否配置成功 telnetlocalhost 25 // 测试 25 端口 tls 是加密 25 端口,使邮件传输过程加密 postconf -a //postconf 命令用来显示 Postfix 当前的配置状态, -a 选项表示输出当前支持的 SASL 认证类型 -------------------------------------------------------------------------------------------- Postfix 邮件系统反垃圾反病毒: #yuminstall spamassassin // 反垃圾包 下载反病毒安装包: clamav-0.97.6-1.el6.rf.x86_64.rpm clamav-db-0.97.6-1.el6.rf.x86_64.rpm clamav-milter-0.97.6-1.el6.rf.x86_64.rpm clamd-0.97.6-1.el6.rf.x86_64.rpm 需要 libmilter.so.1.0 支持,所以得安装 sendmail-milter 包 , 官网 rpm.pbone.net #yumlocalinstall sendmail-milter-8.14.4-8.el6.x86_64.rpm #yumlocalinstall clam* #freshclam // 安装完成后更新病毒库,要保证能够上网 #/etc/init.d/clamdstart // 启动后可以使用 clamdscan 命令扫描病毒 ( 这个speed 快,但必须启动 clamd) ,也可以用 clamscan 命令扫描(这个 speed 慢,不用再启动其他程序) #clamdscan/tmp // 扫描 /tmp 目录下是否有病毒文件 #clamdscan--remove /tmp // 扫描并直接删除病毒文件 ------------------------- 安装 mail 扫描工具 MailScanner-4.84.5-3.rpm.tar.gz #tarzxf MailScanner-4.84.5-3.rpm.tar.gz #cdMailScanner-4.84.5-3 #./install.sh // 此时安装会出现 error : Youneed to install the patch command from your Linux distribution. Onceyou have done that, please try running this script again. 需要 rpm-build 包的支持 #yuminstall rpm-build #./install.sh #/etc/init.d/postfixstop #chkconfigpostfix off // 关闭 postfix 及开机启动,因为开机自启动 MailScanner时会调用 postfix 启动程序而开启 postfix ,即就是 postfix 交由 MailScanner 控制,并扫描 mail 配置 MailScanner 和 postfix #vi/etc/MailScanner/MailScanner.conf Run As User = postfix Run As Group = postfix IncomingQueue Dir = /var/spool/postfix/hold OutgoingQueue Dir = /var/spool/postfix/incoming MTA= postfix IncomingWork User = IncomingWork Group = IncomingWork Permissions = 0640 VirusScanners = clamav SpamAssassinUser State Dir = /var/spool/MailScanner/spamassassin #mkdir/var/spool/MailScanner/spamassassin #chown-R postfix.postfix /var/spool/MailScanner/spamassassin #MailScanner--lint //MailScanner 语法测试,第一次安装会出现一些问题
四个ERROR,解决如下: 1.unrar 未安装,下载 rarlinux-3.8.0.tar.gz 解压 makeinstall #whichunrar // 查看 unrar 目录 /usr/local/bin/unrar #ln-s /usr/local/bin/unrar /usr/bin/ // 必须放在 /usr/bin/ 下,所以使用软链接指向其
2.ERROR:The "envelope_sender_header" in yourspam.assassin.prefs.conf ERROR:is not correct, it should match X-yoursite-MailScanner-From #vi/etc/MailScanner/spam.assassin.prefs.conf envelope_sender_headerX-yoursite-MailScanner-From 3.config:failed to parse line, skipping, in "/etc/mail/spamassassin/ mailscanner.cf": use_auto_whitelist 0 #vi/etc/MailScanner/spam.assassin.prefs.conf use_auto_whitelist0 // 将此行注释 4.Cannotfind Socket (/tmp/clamd.socket) Exiting! at/usr/lib/MailScanner/MailScanner/SweepViruses.pm line 3838 查看 /etc/clamd.conf 中Socket如下: LocalSocket /var/run/clamav/clamd.sock 根据这个修改 MailScanner.conf 里的Socket ClamdSocket = /var/run/clamav/clamd.sock |