Centos 搭建邮箱系统
总结
- 我实操的过程,2个邮箱都没有界面,都只是邮件系统。可能还需要再部署其他东西,暂止。
- sendmail 比较简单,主要是发邮件,使用 stmp。还需要解决收邮件的问题和管理界面的问题。
- postfix 比较全面的系统,可以收发邮件,也是没有 web 管理界面。基本步骤:
- 准备环境 ,开放需要的端口,并卸载sedmail,域名解析配置,修改hostname
- 安装并且配置好postfix发件服务
- 安装并且配置好dovect收件服务
- 测试,检查发送情况。
## postfix
1.6 postfix 特点
1、postfix是免费的;
2、性能好,大约比sendmail×××倍,一台运行postfix的台式pc每天可收发上百万邮件;
3、兼容sendmail
4、健壮稳定,postfix被设计成在重负荷之下仍然可以正常工作。当系统运行超出了可用的内存或磁盘空间时,postfix会自动减少运行进程的数目。当处理的邮件数目增长时,postfix运行的进程不会跟着增加;
5、灵活性好,postfix是由超过一打的小程序组成的,每个程序完成特定的功能。你可以通过配置文件设置每个程序的运行参数。
6、安全性,postfix具有多层防御结构,可以有效地抵御恶意者,可以运行在较低的权限之下;
设置域名
新增一条A记录,主机记录为 mail,记录值为 邮件服务器地址。
新增一条MX记录,主机记录为空,记录值为 mail.domain
新增一条TXT记录,主机记录为mail,记录值为 v=spf1 ipv4:xx.xx.xx.xx(服务器ip地址)
安全组
开启 143端口 25端口
安装
yum -y install postfix dovecot # 1.安装Postfix,2.安装Dovecot
yum remove sendmail #
安装完成还需要替换系统自带的sendmail:
alternatives --config mta # 修改MTA(默认邮件传输代理)
alternatives --display mta # 检查一下是不是已经设置成功了。第一行可以看到mta的状态。 例如:mat - status is manual.
vi /etc/postfix/main.cf # 配置Postfix
# 75行: 取消注释,设置hostname(mail+域名)
myhostname = mail.cnblogs.com
# 83行: 取消注释,设置域名
mydomain = cnblogs.com
# 99行: 取消注释
myorigin = $mydomain
# 116行: 修改
inet_interfaces = all
# 119行: 推荐ipv4,如果支持ipv6,则可以为all
inet_protocols = ipv4
# 164行: 添加
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 264行: 取消注释,指定内网和本地的IP地址范围
mynetworks = 0.0.0.0/0
# 419行: 取消注释,邮件保存目录
home_mailbox = Maildir/
# 571行: 添加
smtpd_banner = $myhostname ESMTP
# 添加到最后 开始添加
# 规定邮件最大尺寸为10M
message_size_limit = 10485760
# 规定收件箱最大容量为1G
mailbox_size_limit = 1073741824
# SMTP认证
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
# 添加结束
[root@mail ~]# vi /etc/dovecot/dovecot.conf
# 26行: 如果不使用IPv6,请修改为*
listen = *
[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf
# 9行: 取消注释并修改
disable_plaintext_auth = no
# 97行: 添加
auth_mechanisms = plain login
[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消注释并添加
mail_location = maildir:~/Maildir
[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注释并添加
# Postfix smtp验证
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
# 开启 dovecot
[root@mail ~]# /etc/rc.d/init.d/dovecot start
Starting Dovecot Imap: [ OK ]
#设置开机自启
[root@mail ~]# chkconfig dovecot on
添加账号
#添加新用户
[root@mail ~]useradd zhangsan
[root@mail ~]passwd zhangsan #设置用户zhangsan密码 回车 再次输入两次密码(此账号密码可以直接登录服务器)
配置客户端
填写IMAP服务器: mail.xxx.com(此项与 /etc/postfix/main.cf设置的 myhostname 一致 mail+域名)
填写SMTP服务器: mail.xxx.com(此项与 /etc/postfix/main.cf设置的 myhostname 一致 mail+域名)
查看日志
cat /var/log/maillog
sendmail
安装
yum -y install sendmail mailx
设置发件人信息
vi /etc/mail.rc
set from=shliujing0721@163.com
set smtp=smtp.163.com
set smtp-auth-user=shliujing0721
set smtp-auth-password=
set smtp-auth=login
set ssl-verify=ignore
set nss-config-dir=/etc/pki/nssdb/
测试
vi test.txt # 创建报警文件
mail -s '测试主题' shliujing@foxmail.com < test.txt # 发送测试邮件
查看邮箱是否收到邮件
或
echo '报警提示11' | mail -s '测试主题22' shliujing@foxmail.com
查看命令
mailq # 查看邮件发送任务队列
tail -f /var/log/maillog # 查看sendmail日志信息
FAQ
Missing "nss-config-dir" variable.
补上配置即可 set nss-config-dir=/etc/pki/nssdb/邮件内容乱码,发成附件了
TODO
参考
【推荐】centos6.8 搭建postfix/dovecot邮件服务器
centos7搭建postfix邮件服务器
【推荐】Centos7使用sendmail发送邮件