如何利用Postfix、Dovecot、MySQL与SpamAssassin配置一套邮件服务器
2017-05-10 09:32
671 查看
提供:ZStack云计算
遵循本教程的内容,大家将能够添加虚拟域、用户及别名。另外,大家的虚拟服务器还将拥有抵御垃圾邮件来源的能力。
域名指向您的服务器(设置域名)
MySQL安装并配置完成(设置mysql)
用户拥有root权限(setup新用户-中的第五步)
*配置并指定你的FQDN (设置FQDN)
可选: SSL证书(设置免费的签名SSL证书)
可选(以root用户登录)
首先作为root用户安装软件包,这能为大家提供全部必要权限。
下面输入用户密码。成功之后,大家将看到¥号变更为#号。
这时Postfix配置会弹出提示,要求选定互联网站点:
Postfix配置要求分配System邮件名称——大家可以直接使用FDQN或者主域名。
我们将该数据库命名为servermail,但大家也可以选择其它名称。
创建servermail数据库:
作为MySQL root用户登录:
输入MySQL root密码;成功后大家应当看到:
首先,我们需要创建一个新用户,指定邮件验证并为其提供SELECT权限。
接下来,我们重载MySQL权限以确保变更得到应用:
最后,我们需要使用该数据库创建表并引入数据:
我们需要为特定域创建一套表以将其作为认证域。
我们还需要创建一套表用于引入用户。在这里,我们需要添加邮箱地址与密码。另外,还需要将每个用户与一个域加以关联:
最后,我们将创建一套虚拟别名表,用于将全部邮件转发至其它邮箱地址。
到这里三套表已经创建成功。现在,我们进行数据引入。
退出MySQL:
第三步:配置Postfix
我们需要配置Postfix来处理SMTP连接,同时为引入MySQL数据库内的每个用户发送消息。
首先,我们需要创建一套默认文件副本,以备后期默认配置恢复需要。
打开main.cf文件并进行修改:
首先,我们需要注释TLS参数及其它附加参数。在本示例中,我们将使用免费SSL证书以及(此链接)中推荐的路径,当然大家也可以根据实际配置进行修改。
接下来,我们在TLS设定之下添加以下参数:
我们需要注释掉mydestination默认设置,并将其替换为localhost。这项变更允许大家的VPS在MySQL表中使用虚拟域。
确认将myhostname参数设置为我们的FQDN。
添加以下行,确保将本地邮件交付至在MySQL表中列出的全部虚拟域。
最后,我们需要添加以下三项参数,告知Postfix配置虚拟域、用户与别名。
注意:将各项变更与以下文件进行比对,确保其中不存在错误信息:
https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt
接下来创建三个在main.cf文件中附加的文件,负责告知Postfix如何接入MySQL。
首先,我们需要创建mysql-virtual-mailbox-domains.cf文件。注意按照实际情况调整其中的配置值。
接下来重启Postfix。
我们需要确保Postfix能够找到自己的域,因此使用以下命令进行测试。如果成功,则应返回1:
接下来创建mysql-virtual-mailbox-maps.cf文件。
这里需要再次重启Postfix。
现在,我们使用以下命令确保Postfix找到我们的首个邮箱地址。如果成功,则应返回1:
最后,创建最后一个文件对Postfix与MySQL之间的连接进行配置。
重启Postfix:
我们需要确认Postfix能够识别设置的别名。使用以下命令,其应该返回被转发至该别名的邮箱:
如果大家希望使用端口587安全接入邮箱客户端,则需要修改/etc/postfix/master.cf文件:
我们需要取消以下行的注释,并添加其它参数:
在某些情况下,我们需要重启Postfix以确保端口587开启。
注意:大家可以使用此工具扫描自己的域端口并确保端口25与587处于开启状态(http://mxtoolbox.com/SuperTool.aspx)。
在Devecot中编辑配置文件。
确保此选项已被取消注释。
下面我们在!include_try /usr/share/dovecot/protocols.d/*.protocol行下启用各协议(如果需要,亦可添加pop3)。
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt
然后编辑该邮件配置文件:
找到mail_location一行,取消其注释并添加以下参数:
找到mail_privileged_group一行,取消其注释并添加mail参数:
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt
确保权限如下所示:
我们需要为注册在MySQL表内的每个域创建一个文件夹:
创建一个vmail用户与id为5000的组:
我们需要将/var/mail文件夹的拥有者变更为该vmail用户:
接下来编辑此/etc/dovecot/conf.d/10-auth.conf文件:
取消纯文本验证部分的注释并添加以下行:
修改auth_mechanisms参数:
注释此行:
取消以下行的注释以启用MySQL验证:
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt
接下来需要利用验证信息创建/etc/dovecot/dovecot-sql.conf.ext文件:
在文件中输入以下代码:
我们需要使用自定义MySQL信息修改/etc/dovecot/dovecot-sql.conf.ext文件:
取消driver参数注释并将其设定为mysql:
取消以下connect行注释并引入MySQL指定信息:
取消default_pass_scheme行的注释并将其变更为SHA-512:
取消password_query行的注释并添加以下信息:
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt
将devecot文件夹拥有者与群变更为vmail用户:
打开并修改/etc/dovecot/conf.d/10-master.conf文件(请注意,因为不同参数接下来还需要变更)。
将unix_listener参数修改为service_auth:
对service auth-worker进行如下修改:
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt
最后,我们对Devecot中的SSL证书文件进行修改(如果大家打算使用默认配置,则可跳过此步):
将ssl参数变更为required:
而后变更ssl_cert与ssl_key的路径:
重启Dovecot
检查后,现在端口993应该已经开启并开始运作(如果启用pop3,则应当检查端口995)。
祝贺大家!现在我们已经成功配置了自己的邮件服务器,并可使用邮件客户端测评我们的账户:
注意:使用端口993以实现安全IMAP,SMTP则使用端口587或者25。
接下来为SpamAssassin创建一个用户。
要成功配置SpamAssassin,我们需要打开并修改其配置设置。
首先变更ENABLED参数以启用SpamAssassin守护程序。
接下来配置home与options参数。
然后将PID_File参数指定如下:
最后,我们需要指定SpamAssassin规则进行自动更新。
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt
我们需要打开/etc/spamassassin/local.cf文件以设置反垃圾邮件规则。
SpamAssassin会保存每一封邮件,如果邮件在spam检查中的得分高于5.0,则会被自动归类为垃圾邮件。大家可以使用以下参数配置这一反垃圾规则:
我们需要变更Postfix的/etc/postfix/master.cf文件,告知其每封邮件都需要由SpamAssassin进行检查。
接下来找到以下行,并向其中添加spamassassin filter:
最后添加以下参数:
记得重启SpamAssassin与Postfix以应用变更并开始进行垃圾邮件检查。
好了,到这里我们的邮件服务器已经通过Postfix与Dovecot设置完成,具备MySQL验证机制并利用SpamAssassin实现垃圾邮件过滤。大功告成!
本文来源自DigitalOcean Community。英文原文:How To Configure a Mail Server Using Postfix, Dovecot, MySQL, and SpamAssassin
翻译:diradw
内容介绍
在本教程中,我们将利用Postfix、Dovecot、MySQL与SpamAssassin在Ubuntu 12.04上配置一套邮件服务器。遵循本教程的内容,大家将能够添加虚拟域、用户及别名。另外,大家的虚拟服务器还将拥有抵御垃圾邮件来源的能力。
先决条件
在开始设置邮件服务器之前,大家的VPS必须满足以下要求:域名指向您的服务器(设置域名)
MySQL安装并配置完成(设置mysql)
用户拥有root权限(setup新用户-中的第五步)
*配置并指定你的FQDN (设置FQDN)
可选: SSL证书(设置免费的签名SSL证书)
可选(以root用户登录)
首先作为root用户安装软件包,这能为大家提供全部必要权限。
sudo -i
下面输入用户密码。成功之后,大家将看到¥号变更为#号。
第一步:安装软件包
apt-get install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-lmtpd dovecot-mysql
这时Postfix配置会弹出提示,要求选定互联网站点:
Postfix配置要求分配System邮件名称——大家可以直接使用FDQN或者主域名。
第二步:创建一套MySQL数据库、虚拟域、用户与别名
在安装工作结束后,我们需要创建一套MySQL数据库来配置三套不同表:其一面向域、其一面向用户,最后则面向别名。我们将该数据库命名为servermail,但大家也可以选择其它名称。
创建servermail数据库:
mysqladmin -p create servermail
作为MySQL root用户登录:
mysql -u root -p
输入MySQL root密码;成功后大家应当看到:
mysql >
首先,我们需要创建一个新用户,指定邮件验证并为其提供SELECT权限。
mysql > GRANT SELECT ON servermail.* TO 'usermail'@'127.0.0.1' IDENTIFIED BY 'mailpassword';
接下来,我们重载MySQL权限以确保变更得到应用:
mysql > FLUSH PRIVILEGES;
最后,我们需要使用该数据库创建表并引入数据:
mysql> USE servermail;
我们需要为特定域创建一套表以将其作为认证域。
CREATE TABLE `virtual_domains` ( `id` INT NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我们还需要创建一套表用于引入用户。在这里,我们需要添加邮箱地址与密码。另外,还需要将每个用户与一个域加以关联:
CREATE TABLE `virtual_users` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `password` VARCHAR(106) NOT NULL, `email` VARCHAR(120) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `email` (`email`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
最后,我们将创建一套虚拟别名表,用于将全部邮件转发至其它邮箱地址。
CREATE TABLE `virtual_aliases` ( `id` INT NOT NULL AUTO_INCREMENT, `domain_id` INT NOT NULL, `source` varchar(100) NOT NULL, `destination` varchar(100) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (domain_id) REFERENCES virtual_domains(id) ON DELETE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
到这里三套表已经创建成功。现在,我们进行数据引入。
虚拟域
这里我们需要在virtual_domains表中引入各域。大家可以将全部域添加进来,但在本示例中我们只引入主域(example.com)与FQDN(hostname.example.com)。INSERT INTO `servermail`.`virtual_domains` (`id` ,`name`) VALUES ('1', 'example.com'), ('2', 'hostname.example.com');
虚拟邮件
我们要将相关邮箱地址与密码引入每个域。请注意将以下内容中的信息变更为实际值。INSERT INTO `servermail`.`virtual_users` (`id`, `domain_id`, `password` , `email`) VALUES ('1', '1', ENCRYPT('firstpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email1@example.com'), ('2', '1', ENCRYPT('secondpassword', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'email2@example.com');
虚拟别名
我们需要引入各邮箱地址(来源),指向这些邮箱的邮件都将被转发到其它邮箱(目的地)。INSERT INTO `servermail`.`virtual_aliases` (`id`, `domain_id`, `source`, `destination`) VALUES ('1', '1', 'alias@example.com', 'email1@example.com');
退出MySQL:
mysql > exit
第三步:配置Postfix
我们需要配置Postfix来处理SMTP连接,同时为引入MySQL数据库内的每个用户发送消息。
首先,我们需要创建一套默认文件副本,以备后期默认配置恢复需要。
cp /etc/postfix/main.cf /etc/postfix/main.cf.orig
打开main.cf文件并进行修改:
nano /etc/postfix/main.cf
首先,我们需要注释TLS参数及其它附加参数。在本示例中,我们将使用免费SSL证书以及(此链接)中推荐的路径,当然大家也可以根据实际配置进行修改。
# TLS parameters #smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem #smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key #smtpd_use_tls=yes #smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache #smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_cert_file=/etc/ssl/certs/dovecot.pem smtpd_tls_key_file=/etc/ssl/private/dovecot.pem smtpd_use_tls=yes smtpd_tls_auth_only = yes
接下来,我们在TLS设定之下添加以下参数:
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_sasl_auth_enable = yes smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
我们需要注释掉mydestination默认设置,并将其替换为localhost。这项变更允许大家的VPS在MySQL表中使用虚拟域。
#mydestination = example.com, hostname.example.com, localhost.example.com, localhost mydestination = localhost
确认将myhostname参数设置为我们的FQDN。
myhostname = hostname.example.com
添加以下行,确保将本地邮件交付至在MySQL表中列出的全部虚拟域。
virtual_transport = lmtp:unix:private/dovecot-lmtp
最后,我们需要添加以下三项参数,告知Postfix配置虚拟域、用户与别名。
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
注意:将各项变更与以下文件进行比对,确保其中不存在错误信息:
https://www.dropbox.com/s/x9fpm9v1dr86gkw/etc-postfix-main.cf.txt
接下来创建三个在main.cf文件中附加的文件,负责告知Postfix如何接入MySQL。
首先,我们需要创建mysql-virtual-mailbox-domains.cf文件。注意按照实际情况调整其中的配置值。
nano /etc/postfix/mysql-virtual-mailbox-domains.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_domains WHERE name='%s'
接下来重启Postfix。
service postfix restart
我们需要确保Postfix能够找到自己的域,因此使用以下命令进行测试。如果成功,则应返回1:
postmap -q example.com mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
接下来创建mysql-virtual-mailbox-maps.cf文件。
nano /etc/postfix/mysql-virtual-mailbox-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT 1 FROM virtual_users WHERE email='%s'
这里需要再次重启Postfix。
service postfix restart
现在,我们使用以下命令确保Postfix找到我们的首个邮箱地址。如果成功,则应返回1:
postmap -q email1@example.com mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
最后,创建最后一个文件对Postfix与MySQL之间的连接进行配置。
nano /etc/postfix/mysql-virtual-alias-maps.cf user = usermail password = mailpassword hosts = 127.0.0.1 dbname = servermail query = SELECT destination FROM virtual_aliases WHERE source='%s'
重启Postfix:
service postfix restart
我们需要确认Postfix能够识别设置的别名。使用以下命令,其应该返回被转发至该别名的邮箱:
postmap -q alias@example.com mysql:/etc/postfix/mysql-virtual-alias-maps.cf
如果大家希望使用端口587安全接入邮箱客户端,则需要修改/etc/postfix/master.cf文件:
nano /etc/postfix/master.cf
我们需要取消以下行的注释,并添加其它参数:
submission inet n - - - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
在某些情况下,我们需要重启Postfix以确保端口587开启。
service postfix restart
注意:大家可以使用此工具扫描自己的域端口并确保端口25与587处于开启状态(http://mxtoolbox.com/SuperTool.aspx)。
第四步:配置Dovecot
我们需要复制7个接下来需要修改的文件,以备未来恢复时使用。逐一使用以下命令:cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.orig cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.orig cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.orig cp /etc/dovecot/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext.orig cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.orig cp /etc/dovecot/conf.d/10-ssl.conf /etc/dovecot/conf.d/10-ssl.conf.orig
在Devecot中编辑配置文件。
nano /etc/dovecot/dovecot.conf
确保此选项已被取消注释。
!include conf.d/*.conf
下面我们在!include_try /usr/share/dovecot/protocols.d/*.protocol行下启用各协议(如果需要,亦可添加pop3)。
!include_try /usr/share/dovecot/protocols.d/*.protocol protocols = imap lmtp
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/wmbe3bwy0vcficj/etc-dovecot-dovecot.conf.txt
然后编辑该邮件配置文件:
nano /etc/dovecot/conf.d/10-mail.conf
找到mail_location一行,取消其注释并添加以下参数:
mail_location = maildir:/var/mail/vhosts/%d/%n
找到mail_privileged_group一行,取消其注释并添加mail参数:
mail_privileged_group = mail
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/hnfeieuy77m5b0a/etc.dovecot.conf.d-10-mail.conf.txt
确认权限
输入以下命令:ls -ld /var/mail
确保权限如下所示:
drwxrwsr-x 3 root vmail 4096 Jan 24 21:23 /var/mail
我们需要为注册在MySQL表内的每个域创建一个文件夹:
mkdir -p /var/mail/vhosts/example.com
创建一个vmail用户与id为5000的组:
groupadd -g 5000 vmail useradd -g vmail -u 5000 vmail -d /var/mail
我们需要将/var/mail文件夹的拥有者变更为该vmail用户:
chown -R vmail:vmail /var/mail
接下来编辑此/etc/dovecot/conf.d/10-auth.conf文件:
nano /etc/dovecot/conf.d/10-auth.conf
取消纯文本验证部分的注释并添加以下行:
disable_plaintext_auth = yes
修改auth_mechanisms参数:
auth_mechanisms = plain login
注释此行:
#!include auth-system.conf.ext
取消以下行的注释以启用MySQL验证:
!include auth-sql.conf.ext
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/4h472nqrj700pqk/etc.dovecot.conf.d.10-auth.conf.txt
接下来需要利用验证信息创建/etc/dovecot/dovecot-sql.conf.ext文件:
nano /etc/dovecot/conf.d/auth-sql.conf.ext
在文件中输入以下代码:
passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext } userdb { driver = static args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n }
我们需要使用自定义MySQL信息修改/etc/dovecot/dovecot-sql.conf.ext文件:
nano /etc/dovecot/dovecot-sql.conf.ext
取消driver参数注释并将其设定为mysql:
driver = mysql
取消以下connect行注释并引入MySQL指定信息:
connect = host=127.0.0.1 dbname=servermail user=usermail password=mailpassword
取消default_pass_scheme行的注释并将其变更为SHA-512:
default_pass_scheme = SHA512-CRYPT
取消password_query行的注释并添加以下信息:
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/48a5r0mtgdz25cz/etc.dovecot.dovecot-sql.conf.ext.txt
将devecot文件夹拥有者与群变更为vmail用户:
chown -R vmail:dovecot /etc/dovecot chmod -R o-rwx /etc/dovecot
打开并修改/etc/dovecot/conf.d/10-master.conf文件(请注意,因为不同参数接下来还需要变更)。
nano /etc/dovecot/conf.d/10-master.conf ##Uncomment inet_listener_imap and modify to port 0 service imap-login { inet_listener imap { port = 0 } #Create LMTP socket and this configurations service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix } #inet_listener lmtp { # Avoid making LMTP visible for the entire internet #address = #port = #} }
将unix_listener参数修改为service_auth:
service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail #group = } #unix_listener /var/spool/postfix/private/auth { # mode = 0666 #} user = dovecot }
对service auth-worker进行如下修改:
service auth-worker { # Auth worker process is run as root by default, so that it can access # /etc/shadow. If this isn't necessary, the user should be changed to # $default_internal_user. user = vmail }
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/g0vnt233obh6v2h/etc.dovecot.conf.d.10-master.conf.txt
最后,我们对Devecot中的SSL证书文件进行修改(如果大家打算使用默认配置,则可跳过此步):
# nano /etc/dovecot/conf.d/10-ssl.conf
将ssl参数变更为required:
ssl = required
而后变更ssl_cert与ssl_key的路径:
ssl_cert = </etc/ssl/certs/dovecot.pem ssl_key = </etc/ssl/private/dovecot.pem
重启Dovecot
service dovecot restart
检查后,现在端口993应该已经开启并开始运作(如果启用pop3,则应当检查端口995)。
telnet example.com 993
祝贺大家!现在我们已经成功配置了自己的邮件服务器,并可使用邮件客户端测评我们的账户:
- Username: email1@example.com - Password: email1's password - IMAP: example.com - SMTP: example.com
注意:使用端口993以实现安全IMAP,SMTP则使用端口587或者25。
第五步:配置SpamAssassin
我们首先需要安装SpamAssassin。apt-get install spamassassin spamc
接下来为SpamAssassin创建一个用户。
adduser spamd --disabled-login
要成功配置SpamAssassin,我们需要打开并修改其配置设置。
nano /etc/default/spamassassin
首先变更ENABLED参数以启用SpamAssassin守护程序。
ENABLED=1
接下来配置home与options参数。
SPAMD_HOME="/home/spamd/" OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SPAMD_HOME} -s ${SPAMD_HOME}spamd.log"
然后将PID_File参数指定如下:
PIDFILE="${SPAMD_HOME}spamd.pid"
最后,我们需要指定SpamAssassin规则进行自动更新。
CRON=1
注意:请与以下文件对比以确保不存在错误信息:
https://www.dropbox.com/s/ndvpgc2jipdd4bk/etc.default.spamassassin.txt
我们需要打开/etc/spamassassin/local.cf文件以设置反垃圾邮件规则。
nano /etc/spamassassin/local.cf
SpamAssassin会保存每一封邮件,如果邮件在spam检查中的得分高于5.0,则会被自动归类为垃圾邮件。大家可以使用以下参数配置这一反垃圾规则:
rewrite_header Subject ***** SPAM _SCORE_ ***** report_safe 0 required_score 5.0 use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 skip_rbl_checks 0 use_razor2 0 use_dcc 0 use_pyzor 0
我们需要变更Postfix的/etc/postfix/master.cf文件,告知其每封邮件都需要由SpamAssassin进行检查。
nano /etc/postfix/master.cf
接下来找到以下行,并向其中添加spamassassin filter:
smtp inet n - - - - smtpd -o content_filter=spamassassin
最后添加以下参数:
spamassassin unix - n n - - pipe user=spamd argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
记得重启SpamAssassin与Postfix以应用变更并开始进行垃圾邮件检查。
service spamassassin start
service postfix restart
好了,到这里我们的邮件服务器已经通过Postfix与Dovecot设置完成,具备MySQL验证机制并利用SpamAssassin实现垃圾邮件过滤。大功告成!
本文来源自DigitalOcean Community。英文原文:How To Configure a Mail Server Using Postfix, Dovecot, MySQL, and SpamAssassin
翻译:diradw
相关文章推荐
- Ubuntu 12.04安装配置Postfix dovecot cyrus sasl(mysql虚拟用户)
- Set Up A Full-Featured Mail Server With iRedOS: MySQL, Postfix, Dovecot, ClamAV, SpamAssassin, RoundCube/SquirrelMail
- Postfix+Dovecot+MySQL搭建邮件服务器
- 邮件服务器postfix,saslauthd,dovecot安装配置提供SMTP服务
- CentOS 5.5 下Postfix和Dovecot 配置邮件服务器
- postfix+dovecot+mysql+extmail配置备忘
- 如何利用**.ini配置文件获取MySQL连接信息
- CentOS 64位下安装Postfix+Dovecot 配置邮件服务器笔记
- linux 下 搭建邮件邮件服务器(Postfix+Dovecot)(二)-基于mysql的虚拟账户登陆收发邮件
- RHEL6.3下安装配置ExtMail(postfix+cyrus+courier+dovecot+mysql+httpd+extmail)
- 配置postfix+dovecot+mysql+postfixadmin+squirrelmail 邮件系统笔记
- 配置 Squirrelmail/Roundcude Webmail Server 与 DNS, Postfix, Dovecot and MySQL on RHEL 6 /CentOS 6
- Ubuntu 服务器管理员手记(二):快速安装配置邮件服务器(详解 Postfix + Dovecot)
- Postfix+Dovecot邮件服务器配置指南,Postfix使用Dovecot认证,配置环境CentOS5.5
- Postfix+Dovecot+Mysql搭建邮件服务器
- centos 邮件服务器postfix,saslauthd,dovecot安装配置.
- RHCE 系列(九):如何使用无客户端配置 Postfix 邮件服务器(SMTP)
- Postfix(二):为邮件服务器配置收件服务器----dovecot
- Postfix(二):为邮件服务器配置收件服务器----dovecot
- Postfix+Dovecot+MySQL搭建邮件服务器图文解析