基于lnmp1.9/lamp或者宝塔面板的基础上搭建一个企业邮局,实现轻量化,稳定,的邮局
Postfix+Dovecot+Sasl+OpenDKIM+SSL/TLS+postfixadmin+SQLite+Roundcube+fail2banc
这些东西基本上都是开源的!先实现手动化,在整合成脚本实现一键安装的目的,最后再整合到网站在线安装,或者开发成软件,
简介:
系统用的:Centos7 x64
postfix开源的邮件发送系统
Dovecot 开源IMAP和POP3服务器,收邮件储存邮件用的吧
OpenDKIM 开源的dkim作作
Sasl 验证密码的
postfixadmin来管理邮局,开源,我喜欢,支持中文
SQLite来管理数据库,之所以不用mysql是因为mysql占用资源比较多!比较卡!相比之下SQLite更加适合
Roundcube WEB IMAP在线电子邮件客户端
fail2banc 防止有人破解你的smtp账号密码,国内几乎天天都有黑客扫描smtp爆破,没这个真的不行
一、安装LNMP1.9
推荐一种方便快捷安装方式 https://lnmp.org/install.html
增加PHP模块exif、fileinfo、ldap、bz2、sodium、imap和swoole的支持安装,安装lnmp前lnmp.conf 中开启后
我是全开!!哈哈哈
[collapse title=“lnmp1.8添加imap教程”]
yum -y install libc-client-*
进入lnmp的src目录
cd ~/lnmp1.8/src
解压 php (注意自己的PHP版本)我这里用的php5.6
tar -xjvf php-5.6.40.tar.bz2
cd php-5.6.40/ext/imap
/usr/local/php/bin/phpize
出现这个错误,系统涨不到libc-client,做一个软连接,就解决了configure: error: Cannot find imap library (libc-client.a). Please check your c-client installation.
解决:ln -s /usr/lib64/libc-client.so /usr/lib/libc-client.so
./configure –with-php-config=/usr/local/php/bin/php-config –with-imap-ssl –with-kerberos
make && make install
编辑 vi /usr/local/php/etc/php.ini
添加 extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/imap.so
注意这个路径是绝对路径!
执行:nginx 重启生效
service nginx restart
lnmp php-fpm restart
[/collapse]
postfix+dovecot安装
设置一下主机名 hostnamectl set-hostname –static mail.********.xx
先卸载 postfix、dovecot
yum -y remove dovecot
yum -y remove postfix
后安装
yum -y install postfix
yum -y install dovecot
yum -y install crontabs (这个是如果初始安装了postfix的话,卸载时会顺带把它卸载掉,所以要重新安装)
yum -y install cyrus-sasl* (如果这个已经安装了,这个千万不要卸载哦,卸载了重启服务器就崩溃了哦)
顺便安装 Cyrus SASL 软件,万一有的服务器没有安装呢,还是安装一下比较保险
一般情况下,系统中都会安装 Cyrus SASL 软件的,好多软件都依赖 Cyrus SASL 软件包。
rpm -qa | grep sasl
输出结果:
cyrus-sasl-lib-2.1.22- .el5_4.3 cyrus-sasl-plain-2.1.22- .el5_4.3 cyrus-sasl-2.1.22- .el5_4.3 cyrus-sasl-sql-2.1.22- .el5_4.3 cyrus-sasl-devel-2.1.22- .el5_4.3 cyrus-sasl-md -2.1.22- .el5_4.3
没这些的,就安装,一般都有!!!!!!!!!!安装postfix之后才会有 /etc/sasl2/smtpd.conf
yum install -y cyrus-sasl cyrus-sasl-sql cyrus-sasl-devel cyrus-sasl-md5 cyrus-sasl-gssapi cyrus-sasl-plain sasl2-bin
/etc/postfix/main.cf 配置文件打开。具体变化如下。
#myhostname参数为邮件服务器的主机名
myhostname = mail.ramuel.com
mydomain = ramuel.com
inet_interfaces = all
# (如果支持IPv4 和 IPv6)则 inet_protocols = all
inet_protocols = ipv4
#masquerade_domains”参数是一个可选设置,用于删除发件人电子邮件地址的子域部分(主机名部分)。
masquerade_domains = ramuel.com
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
header_checks = regexp:/etc/postfix/header_checks
smtpd_banner = $myhostname ESMTP
local_recipient_maps = unix:passwd.byname $alias_maps
#邮箱账户总容量1G
mailbox_size_limit = 1073741824
#邮件附件20MB
message_size_limit = 20971520
### SMTP-AUTH
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
## postfix 附加没有域部分的 SASL 登录的域名 ## 不知道要不要加,
smtpd_sasl_local_domain = $mydomain
#后加部分,
## SASL 默认策略 ##
smtpd_sasl_security_options = noanonymous
#老旧客户端兼容参数
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
SSL/TLS Settings
smtp_tls_security_level = may
smtpd_tls_cert_file = /etc/postfix/mail.wptmdb.com.pem 证书变成你自己的、注意目录
smtpd_tls_key_file = /etc/postfix/mail.wptmdb.com.key 证书换成你自己的,注意目录
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
master.cf 的变化
vi /etc/postfix/master.cf
# ===================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ===================================================================
smtp inet n - n - - smtpd
#smtp inet n - n - 1 postscreen
#smtpd pass - - n - - smtpd
#dnsblog unix - - n - 0 dnsblog
#tlsproxy unix - - n - 0 tlsproxy
submission inet n - n - - smtpd
# -o syslog_name=Postfix/submission
# -o smtpd_tls_security_level=encrypt
# -o smtpd_sasl_auth_enable=yes
smtps inet n - n - - smtpd # -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # -o smtpd_reject_unlisted_recipient=no # -o smtpd_client_restrictions=$mua_client_restrictions # -o smtpd_helo_restrictions=$mua_helo_restrictions # -o smtpd_sender_restrictions=$mua_sender_restrictions -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject # -o milter_macro_daemon_name=ORIGINATING
postconf -n
postfix check 检查配置文件中的错误,无错误便是OK
systemctl restart postfix
systemctl status postfix
dovecot.conf配置
vi /etc/dovecot/dovecot.conf
protocols = imap pop3
vi /etc/dovecot/conf.d/10-auth.conf
disable_plaintext_auth = no
auth_mechanisms = plain login
vi /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:~/Maildir
vi /etc/dovecot/conf.d/10-ssl.conf
ssl = required
ssl_cert = </etc/postfix/fullchain.pem
ssl_key = </etc/postfix/privkey.pem
vi /etc/dovecot/conf.d/10-master.conf
# Postfix smtp-auth unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
service imap-login { inet_listener imap { port = 0 } inet_listener imaps { port = 993 ssl = yes }
service pop3-login { inet_listener pop3 { port = 0 } inet_listener pop3s { port = 995 ssl = yes } }
doveconf -n
systemctl restart dovecot
systemctl status dovecot