总结

  1. 我实操的过程,2个邮箱都没有界面,都只是邮件系统。可能还需要再部署其他东西,暂止。
  2. sendmail 比较简单,主要是发邮件,使用 stmp。还需要解决收邮件的问题和管理界面的问题。
  3. postfix 比较全面的系统,可以收发邮件,也是没有 web 管理界面。基本步骤:
  1. 准备环境 ,开放需要的端口,并卸载sedmail,域名解析配置,修改hostname
  2. 安装并且配置好postfix发件服务
  3. 安装并且配置好dovect收件服务
  4. 测试,检查发送情况。
    ## 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

  1. Missing "nss-config-dir" variable.
    补上配置即可 set nss-config-dir=/etc/pki/nssdb/
  2. 邮件内容乱码,发成附件了
    TODO

参考