前言
今天因业务拓展, 算了前言就这样不编了,直接进入正题!!!
我的需求是要这台邮件服务器平时也就起到一个发邮件通知的作用。搭建完成后这台服务器能发送邮件。
准备
- 一台线上服务器 (我这边使用Centos 6.8系统)
- 一个域名
- 这个域名的SSL证书 (证书可在域名申请的地方免费申请下载 使用免费版的DV证书就可以)
开始
##安装Postfix
yum install postfix
yum install cyrus*
配置
修改默认邮件代理为MTA
alternatives --config mta
查看是否设置成功
alternatives --display mta
如果和图中一致表示设置成功
下面设置域名解析
第一条记录
第二条记录
着两条记录设置好了以后 下面进行具体的文件配置
具体文件配置
vi /etc/postfix/main.cf
大约在75行,postfix主机名,修改成你的域名 此项需要添加A记录并指向postfix所在主机公网IP
myhostname = mail.xxx.com
大约在83行,后面为主机域名
大约在100行,设置postfix邮箱的域名后缀为$mydomain
大约在117行,指定postfix系统监听的网络接口
大约在120行,指定网络协议
大约在165行 指定postfix接收邮件时收件人的域名,换句话说,也就是你的postfix系统要接收什么样的邮件
大约在266行 指定你所在的网络的网络地址 这里我填的依次是公网IP、内网IP、本地IP
大约在571行 指定MUA通过smtp连接postfix时返回的header头信息 原始配置附带有postfix版本号 去掉即可,此项酌情处理
#SMTP Config ,将下面的内容添加到文件尾部即可
# 规定邮件最大尺寸为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_unauth_destination,reject
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
smtpd_use_tls = yes
smtpd_tls_key_file = /ssl/ssl.key
smtpd_tls_cert_file = /ssl/ssl.crt
vi /etc/postfix/master.cf
修改好后重启服务
我们可以使用命令发送邮件了
echo "Mail Content" | mail -s "Mail Subject" 你的邮箱地址
发送后发现并没有收到邮件 我们看看日志
提示在端口25超时了 其实是服务器提供商封锁了我们的25端口的出口 具体原因可以查看运营商的公告信息
为了证明 我们使用同一个命令 在服务器内部和我的本机电脑连接同一个地址 在服务器内部的却连不上
我这里提供另一种解决思路 我们换一个端口发送
vi /etc/services
修改为2525以后我们再使用相同命令发送 (记得重启服务)
通过日志查看发现发送成功 登录邮箱 你会发现惊喜
有空再把接收的设置方法更新进来
参考了这位的文章 点击访问 但我并未照搬 我在上面做了些对应补充 !!