您的位置:首页 > 其它

POSTFIX邮局系统搭建全过程 (三)

2013-01-23 18:18 190 查看
7、 安装postfix
(1) 首先卸载系统自带的sendmail
# service sendmail stop
# rpm -qa |grep sendmail |xargs rpm -e –nodeps
(2) 添加用户和安装
# groupadd -g 105 postfix
# useradd -g 105 -u 105 -M -s /sbin/nologin postfix
# groupadd -g 106 postdrop
# useradd -g 106 -u 106 -M -s /sbin/nologin postdrop
# tar -zxvf postfix-2.6.5.tar.gz
# cd postfix-2.6.5
# make makefiles "CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include/mysql -DUSE_CYRUS_SASL -DUSE_SASL_AUTH -I/usr/local/include/sasl" "AUXLIBS=-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm -L/usr/local/lib -lsasl2"
# make
# make install
(3) 按照以下的提示输入相关的路径([]号中的是缺省值,”]”后的是输入值)
install_root: [/]
tempdir: [/root/postfix-2.6.5] /tmp //其他的都是默认
config_directory: [/etc/postfix]
command_directory: [/usr/sbin]
daemon_directory: [/usr/libexec/postfix]
data_directory: [/var/lib/postfix]
html_directory: [no]
mail_owner: [postfix]
mailq_path: [/usr/bin/mailq]
manpage_directory: [/usr/local/man]
newaliases_path: [/usr/bin/newaliases]
queue_directory: [/var/spool/postfix]
readme_directory: [no]
sendmail_path: [/usr/sbin/sendmail]
setgid_group: [postdrop]
(4) 生成别名二进制文件
# newaliases
(5) 建立邮件存放目录
# mkdir -pv /var/mailbox
# chown -R vmail.vmail /var/mailbox
(6) 建立配置文件
# cd /etc/postfix/
# mv main.cf main.cf.old
# vi main.cf
添加下面的内容
#=====================BASE=========================
myhostname = mail.xxt.cn
mydomain = xxt.cn
myorigin = $mydomain
mydestination =
mynetworks = 192.168.0.0/16, 127.0.0.0/8
inet_interfaces = all
readme_directory = no
sample_directory = /etc/postfix
sendmail_path = /usr/sbin/sendmail
html_directory = no
setgid_group = postdrop
command_directory = /usr/sbin
manpage_directory = /opt/postfix/man
daemon_directory = /usr/libexec/postfix
newaliases_path = /usr/bin/newaliases
mailq_path = /usr/bin/mailq
queue_directory = /var/spool/postfix
mail_owner = postfix

#=====================Vritual Mailbox settings=========================
virtual_mailbox_base = /var/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
virtual_transport = maildrop:
maildrop_destination_recipient_limit = 1
maildrop_destination_concurrency_limit = 1

#====================QUOTA========================
message_size_limit = 52428800
mailbox_size_limit = 209715200
virtual_mailbox_limit = 209715200
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.
virtual_overquota_bounce = yes

#====================SASL========================
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
invalid_hostname_reject_code = 554
multi_recipient_bounce_reject_code = 554
non_fqdn_reject_code = 554
relay_domains_reject_code = 554
unknown_address_reject_code = 554
unknown_client_reject_code = 554
unknown_hostname_reject_code = 554
unknown_local_recipient_reject_code = 554
unknown_relay_recipient_reject_code = 554
unknown_sender_reject_code = 554
unknown_virtual_alias_reject_code = 554
unknown_virtual_mailbox_reject_code = 554
unverified_recipient_reject_code = 554
unverified_sender_reject_code = 554
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reject_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipelining,reject_unauth_destination
#smtpd_sender_restrictions=permit_mynetworks,reject_sender_login_mismatch,reject_authenticated_sender_login_mismatch,reject_unauthenticated_sender_login_mismatch
notify_classes = bounce, 2bounce, delay, policy, protocol, resource, software
bounce_template_file = /etc/postfix/bounce.cf
2bounce_notice_recipient = postmaster
bounce_notice_recipient = postmaster
delay_notice_recipient = postmaster
error_notice_recipient = postmaster
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $mydomain
smtpd_sasl_security_options = noanonymous
smtpd_sasl_application_name = smtpd
smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!
alias_maps = hash:/etc/aliases

#==================clamd==========================
content_filter=amavisfeed:[127.0.0.1]:10024

(7) 添加为支持虚拟域和虚拟用户所用到的配置文件,其实是直接在extman中复制过去
# tar zxvf extman-1.1.tar.gz
# cd extman-1.1
# cp docs/mysql_virtual_* /etc/postfix/
(8) 启动postfix并加入到自启动
# /usr/sbin/postfix start
# echo "/usr/sbin/postfix start">>/etc/rc.local
8、 安装maildrop
(1) 安装和配置maildrop
# tar jxvf maildrop-2.5.0.tar.bz2
# cd maildrop-2.5.0
# ln -sv /usr/local/courier-authlib/bin/courierauthconfig /usr/bin/courierauthconfig
#yum install pcre-devel
#./configure --prefix=/usr/local/maildrop --enable-sendmail=/usr/sbin/sendmail --enable-trusted-users="rootvmail" --enable-syslog=1 --enable-maildirquota --enable-maildrop-uid=1000 --enable-maildrop-gid=1000 --with-trashquota--with-dirsync
# make && make install
# cp /usr/local/maildrop/bin/maildrop /usr/local/bin/
(2) 查看一下安装结果
# maildrop -v
maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.
GDBM extensions enabled.
Courier Authentication Library extension enabled. //要保证这一行显示
Maildir quota extension enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
(3) 配置maildrop的日志文件
# vi /etc/maildroprc
logfile "/var/log/maildrop.log"
to "$HOME/Maildir"
VERBOSE="4"

或者
SHELL="/bin/sh"
logfile "/var/log/maildrop.log"
ACCOUNT=`echo "$LOGNAME" | cut -d@ -f1`
USERDOMAIN=`echo "$LOGNAME" | cut -d@ -f2`
############ Spam Filtering ###############

if (/^X-Spam-Flag: *YES/)
{
exception {
to "$HOME/Maildir/.Junk"
}
}
else
{
exception {
to "$HOME/Maildir"
}
}
下面的这个处理垃圾邮件,将垃圾邮件转移到垃圾邮件收件箱中

# touch /var/log/maildrop.log
# chown vmail.vmail /var/log/maildrop.log
(4) 配置Postfix
# vi /etc/postfix/master.cf
去掉下面两行前面的#
maildrop unix - n n - - pipe
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}
第二行改为
flags=DRhu user=vmail argv=/usr/local/bin/maildrop -w 90 -d ${user}@${nexthop} ${recipient} ${user} ${extension} {nexthop}

此处要注意argv=后边的maildrop要加上路径,否则会出现
temporary failure. Command output: pipe: fatal: pipe_command: execvp maildrop: No such file or directory
注意maildrop unix这行前边不能有空格,要不会出现以下错误提示
warning: connect to transport maildrop: No such file or directory
Oct 31 23:21:24 localhost postfix/error[2235]: BE0AE27DAF6: to=<jjq002@abc.com>,relay=none,delay=1443,delays=1443/0.24/0/0.02,dsn=4.3.0, status=deferred (mail transport unavailable)
注意flags=Drhu这一行前边有两个空格,要不会出现以下错(fatal: /etc/postfix/master.cf: line 100: bad transport type: user= vmail)。

注意前面要保留两个空格,不然会有问题

本文出自 “蚂蚁窝” 博客,请务必保留此出处http://feihan21.blog.51cto.com/1364153/1125016
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: