基础安装
[[email protected] ~ ] yum install -y postfix dovecot
[[email protected] ~ ] hostname
mail.example.com
[[email protected] ~ ] vi /etc/hosts
127.0.0.1 mail.example.com
[[email protected] ~ ] vi /etc/postfix;
#主机名系统 myhostname = mail.example.com #域名 mydomain = example.com #本地投递邮件显示的域名 myorigin = $mydomain #设置接受邮件的网络接口IP, Listen 127.0.0.1 #inet_interfaces = $myhostname, localhost #Listen * inet_interfaces = all #系统所有本地投递的域名列表 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #172.28.100.0 为内网IP段 mynetworks = 192.168.100.0/24, 127.0.0.0/8 #允许中继的域名 relay_domains = #设置存放用户邮件的用户目录 home_mailbox = Maildir/ |
[[email protected] ~ ] vi /etc/dovecot.conf;
protocols = imap imaps pop3 pop3s mail_location = maildir:~/Maildir pop3_uidl_format = %08Xu%08Xv |
[[email protected] ~ ] useradd test
[[email protected] ~ ] useradd test2
[[email protected] ~ ] mkdir /home/test/Maildir
[[email protected] ~ ] chown test.test /home/test/Maildir
[[email protected] ~ ] chmod -R 700 /home/test/Maildir
[[email protected] ~ ] mkdir /home/test2/Maildir
[[email protected] ~ ] chown test2.test2 /home/test2/Maildir
[[email protected] ~ ] chmod -R 700 /home/test2/Maildir
至此,已经能用系统帐号收发邮件了.
================================================
下面,在之前基础上修改,使用虚拟用户帐号,安装Mysql和PostfixAdmin
安装配置POSTFIXADMIN
下载
cd /var/www/html/;
wget http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-2.3.3/postfixadmin-2.3.3.tar.gz;
tar zxvf postfixadmin-2.3.3.tar.gz;
mv postfixadmin-2.3.3.tar.gz postfixadmin;
cd postfixadmin;
修改config文件
vi config.inc.php;
$CONF['configured'] = true; $CONF['default_language'] = 'cn'; $CONF['postfix_admin_url'] = '/postfixadmin'; $CONF['database_type'] = 'mysql'; $CONF['database_host'] = 'localhost'; $CONF['database_user'] = 'postfix'; $CONF['database_password'] = ‘postfix'; $CONF['database_name'] = 'postfix'; $CONF['domain_path'] = 'YES'; $CONF['domain_in_mailbox'] = 'NO'; $CONF['encrypt'] = 'md5'; $CONF['emailcheck_resolve_domain] = 'NO'; |
然后别忘了先建个postfix库
mysql -e ‘create database postfix’;
访问安装页面
1.访问http://IP/postfixadmin/setup.php 2.创建Setup password(如:123456) 点击“Generate password hash”获取一段加密代码 将该代码拷贝到配置文件config.inc.php中的以下配置中 $CONF['setup_password'] = 'change';(用加密代码替换change) 然后再次访问PostfixAdmin的设置页,创建管理员的账号和密码 (需要正确输入之前创建的Setup password才能创建管理员账号) 3.访问PostfixAdmin的登录页http://IP/postfixadmin/ 使用管理员账号登录后,就可以进行相应的管理工作. |
配置POSTFIX
vi /etc/postfix/main.cf
#在最后加入 #---------------------Virtual Mailbox settings---------- #89是postfix用户ID `id postfix` virtual_minimum_uid = 89 virtual_mailbox_base = /var/spool/mail virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf virtual_alias_domains = $virtual_alias_maps virtual_uid_maps = static:89 virtual_gid_maps = static:89 virtual_transport = virtual 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_mailbox_limit_maps.cf virtual_mailbox_limit_override = yes virtual_mailbox_limit_message = Sorry, The quota of mailbox has overdrawn. virtual_overquota_bounce = yes #---------------------SASL-------------------------- broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = /var/run/dovecot/auth-client #参照dovecot配置 smtpd_sasl_local_domain = $myhostname smtpd_sasl_security_options = noanonymous smtpd_sasl_application_name = smtpd smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) |
Postfix的mysql连接配置文件
echo -ne 'user = root\npassword = \nhosts = localhost\ndbname = postfix\ntable = alias\nselect_field = goto\nwhere_field = address' > /etc/postfix/mysql_virtual_alias_maps.cf; echo -ne 'user = root\npassword = \nhosts = localhost\ndbname = postfix\ntable = domain\nselect_field = domain\nwhere_field = domain' > /etc/postfix/mysql_virtual_domains_maps.cf; echo -ne 'user = root\npassword = \nhosts = localhost\ndbname = postfix\ntable = mailbox\nselect_field = quota\nwhere_field = username' > /etc/postfix/mysql_virtual_mailbox_limit_maps.cf; echo -ne 'user = root\npassword = \nhosts = localhost\ndbname = postfix\ntable = mailbox\nselect_field = maildir\nwhere_field = username' > /etc/postfix/mysql_virtual_mailbox_maps.cf; |
配置DOVECOT
vi /etc/dovecot.conf
base_dir = /var/run/dovecot protocols = imap imaps pop3 pop3s listen = * disable_plaintext_auth = no shutdown_clients = yes log_path = /var/log/dovecot.log ssl = no mail_location = maildir:/var/spool/mail/%d/%n auth default { mechanisms = plain login cram-md5 passdb sql { args = /etc/dovecot-mysql.conf } userdb sql { args = /etc/dovecot-mysql.conf } ... socket listen { client { path = /var/run/dovecot/auth-client #postfix参照于此 mode = 0660 user = postfix group = postfix } first_valid_uid=89 |
Dovecot的mysql连接配置文件
vi /etc/dovecot-mysql.conf driver = mysql connect = host=localhost dbname=postfix user=root password= default_pass_scheme = MD5 password_query = SELECT password FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 89 AS uid, 89 AS gid FROM mailbox WHERE username = '%u' |
启动
/etc/init.d/dovecot start
/etc/init.d/postfix start
================================================
打开outlook,在pop和smtp上填上IP地址试试吧.
怎么?不行?看看日志… 发现哪报错了吗?
因为之前CentOS默认安装的postfix是不支持的mysql的(你可以用`postconf -m`看一下是否有mysql支持),所以先卸掉,改yum配置再重装一下.
方法如下:
cp /etc/postfix/main.cf /tmp/
yum remove postfix
vi /etc/yum.repos.d/CentOS-Base.repo
[base] exclude=postfix-* [update] exclude=postfix-* [centosplus] includepkgs=postfix-* |
yum install postfix
cp /tmp/main.cf /etc/postfix/
================================================
为其加上防病毒及防垃圾邮件功能
安装Amavisd-new, ClamAV and SpamAssassin
因为默认yum下没有amavisd和clamav,所以要先新增rpmforge源
rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
vi /etc/yum.repos.d/CentOS-Base.repo
[rpmforge] name = Red Hat Enterprise $releasever RPMforge baseurl = http://apt.sw.be/redhat/el5/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge #mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 |
安装配置amavisd和clamav
yum install amavisd-new clamav clamd spamassassin
vi /etc/amavisd.conf
$max_servers = 2; # num of pre-forked children (2..30 is common), -m $daemon_user = "amavis"; # (no default; customary: vscan or amavis), -u $daemon_group = "amavis"; # (no default; customary: vscan or amavis), -g [...] $inet_socket_port = 10024; # listen on this local TCP port(s) [...] # $notify_method = 'smtp:[127.0.0.1]:10025'; # $forward_method = 'smtp:[127.0.0.1]:10025'; # set to undef with milter! [...] $mydomain = 'example.com'; # Edit: a convenient default for other settings $MYHOME = '/var/amavis'; # Uncomment: a convenient default for other settings, -H $helpers_home = "$MYHOME/var"; # Uncomment: working directory for SpamAssassin, -S $lock_file = "$MYHOME/var/amavisd.lock"; # Uncomment, -L $pid_file = "$MYHOME/var/amavisd.pid"; # Uncomment, -P $myhostname = 'mail.example.com'; # Uncomment & Edit: must be a fully-qualified domain name! [...] $QUARANTINEDIR = "/var/virusmails"; [...] #@local_domains_maps.... # Comment this line [...] $sa_tag_level_deflt = -999; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 5.0; # add 'spam detected' headers at that level $sa_kill_level_deflt = 5.0; # triggers spam evasive actions (e.g. blocks mail) $sa_dsn_cutoff_level = 17; # spam level beyond which a DSN is not sent $sa_quarantine_cutoff_level = 20; # spam level beyond which quarantine is off $sa_spam_subject_tag = '[SPAM] '; [...] $final_virus_destiny = D_PASS; # Uncomment this line if you want to receive mails with tag $final_spam_destiny = D_PASS; # Uncomment this line if you want to receive mails with tag # ### http://www.clamav.net/ ['ClamAV-clamd', \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.sock"], qr/\bOK$/m, qr/\bFOUND$/m, qr/^.*?: (?!Infected Archive)(.*) FOUND$/m ], |
vi /etc/postfix/master.cf
#增加如下内容: smtp-amavis unix - - n - 4 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - n - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes -o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o receive_override_options=no_unknown_recipient_checks,no_header_body_checks |
/etc/init.d/clamd start;
/etc/init.d/spamassassin start;
/etc/init.d/amavisd start;
/etc/init.d/postfix reload;
转载请注明出处: http://yemaosheng.com
太难了,看不懂,要好好研究
顺便,还请博主关注我的原创DV
收藏了,楼主全用yum rpm简易安装,新手老手一学就会,可做标准材料了,要能上个webmail就更好了。
大家注意了:下载支持mysql的postfix时候这里面说的有问题的,应该是:
[base]
exclude=postfix-*
[update]
exclude=postfix-*
[centosplus]
name=CentOS-$releasever – Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos5
includepkgs=postfix-*
exclude=postfix-*plus*