前言
今天因業務拓展, 算了前言就這樣不編了,直接進入正題!!!
我的需求是要這臺郵件服務器平時也就起到一個發郵件通知的作用。搭建完成後這臺服務器能發送郵件。
準備
- 一臺線上服務器 (我這邊使用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以後我們再使用相同命令發送 (記得重啓服務)
通過日誌查看發現發送成功 登錄郵箱 你會發現驚喜
有空再把接收的設置方法更新進來
參考了這位的文章 點擊訪問 但我並未照搬 我在上面做了些對應補充 !!