为什么80%的码农都做不了架构师?>>>
为避免接收邮件的服务器将我们发送的邮件当作垃圾邮件,必须添加DNS解析记录。DNS解析记录可以在DNSPod上添加。DNSPod是国内最大的DNS解析服务提供商,同时也提供免费的DNS解析。 在DNS上注册免费的用户后,点击我的域名,选择添加域名,添加一个域名(此处假设域名为example.com)后即可添加记录。在此,我们加入下面三条记录:
主机记录 记录类型 记录值 MX优先级 TTL
mail A 198.162.1.1 - 600
@ MX mail.example.com 10 600
@ TXT v=spf1 a mx -all - 600
记录值为“v=spf1 a mx ~all”记录值并没有固定的格式,不过大部分TXT记录是用来做SPF反垃圾邮件的,最典型的spf格式的txt记录例子为“v=spf1 a mx ~all”,表示只有这个域名的a记录和mx记录中的ip地址有权限使用这个域名发送邮件。
Postfix 监听25端口主要负责发邮件
Dovecot 监听110端口主要负责收邮件
1、首先设置hostname 事先设置好hostname的话,Postfix可以自动配置好很多参数,节省时间。 我们要假设的网站域名为100p.com,要搭建独立的邮件服务器,就把主机名设置为mail.100p.com。
#echo 'mail.100p.com' > /etc/hostname
#hostname -F /etc/hostname
2、安装Postfix
#yum -y install postfix*
3、基本配置 Postfix的配置文件位于/etc/postfix/main.cf。一般有以下几个重要参数需要设置:
复制代码
*myhostname* //主机名
myhostname = mail.100p.com
*myorigin* //外发邮件时发件人的邮件域名
myorigin = $myhostname //在通过Postfix发送邮件的时候,如果From字段不完整,Postfix会根据myorigin的值将地址补全为 *@mail.100p.com
*mynetworks* //需要收发的客户端的地址
mynetworks = 20.0.2.1/144, 20.0.8.1/144, 127.0.0.0/8 //mynetworks指定了本地网络的IP段,默认只包含主机自己,你可以添加需要收发的客户端的地址。
*mydomain* //使用邮件域
mydomain = 100p.com //mydomain 设置本地网络的邮件域
*mydestination* //可接受邮件地址域名
mydestination = 100p.com, mail.100p.com //mydestination指定了postfix在收到这些域名地址为目标的邮件时,作为接受方收下邮件。如果收到的邮件既不符合转发规则,又不符合接受规则,则拒绝收信。
*sasl* //sasl认证
smtpd_sasl_auth_enable = no //smtp不需要SASL认证时,设置为no。
复制代码
4、 重启服务
配置完postfix的主要参数之后,需要重启postfix服务,重启方法如下:
#service postfix restart
#/etc/init.d/postfix restart
服务重启失败,postfix - master dead but pid file exists
remove /var/spool/postfix/pid/master.pid
如果还存在这个问题,可以查看端口
# netstat -lnp | grep :25
杀死进程,重新启动postfix服务
5、安装dovecot,启动服务
#yum -y install dovecot
#service devocot restart
配置文件,添加一下内容
# vi /etc/dovecot/dovecot.conf
protocols = imap pop3 lmtp
protocols = pop3
disable_plaintext_auth = no
ssl = no
1.安装Postfix
yum -y install postfix
安装完成还需要替换系统自带的sendmail:
rpm -e sendmail
或者
yum remove sendmail
修改MTA(默认邮件传输代理)
alternatives --config mta
然后直接回车即可。 检查一下是不是已经设置成功了。
alternatives --display mta
第一行可以看到mta的状态。 例如:mat - status is manual.
2.安装Dovecot
yum -y install dovecot
3.配置Postfix 编辑/etc/postfix/main.cf,可以下载下来修改,也可以使用vi进行编辑:
vi /etc/postfix/main.cf
修改如下:
# 75行: 取消注释,设置hostnamemyhostname = mail.lomu.me
# 83行: 取消注释,设置域名mydomain = lomu.me
# 99行: 取消注释myorigin = $mydomain
# 116行: 修改inet_interfaces = all
# 119行: 推荐ipv4,如果支持ipv6,则可以为allinet_protocols = ipv4
# 164行: 添加mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
# 264行: 取消注释,指定内网和本地的IP地址范围mynetworks = 127.0.0.0/8, 10.0.0.0/24
# 419行: 取消注释,邮件保存目录home_mailbox = Maildir/
# 571行: 添加smtpd_banner = $myhostname ESMTP
# 添加到最后
# 规定邮件最大尺寸为10Mmessage_size_limit = 10485760
# 规定收件箱最大容量为1Gmailbox_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
修改好了之后使用/etc/rc.d/init.d/postfix start开启postfix,使用chkconfig postfix on将postfix开机启动。
4.配置Dovecot 修改如下:
[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
}
[root@mail ~]# /etc/rc.d/init.d/dovecot start
Starting Dovecot Imap: [ OK ]
[root@mail ~]# chkconfig dovecot on
遇到的问题
接收不到邮件
修改配置文件conf.d/10-mail.conf
去掉 mail_location = mbox:~/mail:INBOX=/var/mail/%u前面的#
解决:登录邮件接收用户执行mkdir -p ~/mail/.imap/INBOX