郵件收、發(fā)服務(wù)器是分開(kāi)的,也就是我們需要搭建一個(gè)郵件發(fā)送服務(wù)器和一個(gè)郵件收取服務(wù)器。
本文會(huì )搭建收、發(fā)兩個(gè)服務(wù)器,并用郵件客戶(hù)端(Foxmail)做測試。
協(xié)議就是定義規則,這里是郵件協(xié)議,定義郵件收發(fā)的規則,了解規則有助于理解軟件的配置文件。
郵件發(fā)送協(xié)議 SMTP(Simple Mail Transfer Protocol),打開(kāi)端口 25。
郵件收取協(xié)議 POP,打開(kāi)端口 110;還有個(gè)常用郵件收取協(xié)議 IMOP,打開(kāi)端口 143。
Postfix
Postfix 是實(shí)現 SMTP 協(xié)議的軟件,也叫做郵件發(fā)送服務(wù)器。
上面說(shuō)的郵件客戶(hù)端將郵件扔給它,由它對郵件進(jìn)行轉發(fā),至于怎么轉發(fā),SMTP 協(xié)議制定了規則,而 Postfix 負責具體事情,我們只需要修改 Postfix 配置文件要求它按照我們的想法去做。
Dovecot
Dovecot 實(shí)現了 POP 和 IMOP 協(xié)議,也叫做郵件收取服務(wù)器。如果只搭建了 Postfix 而沒(méi)有它,不好意思,你是收不到郵件的。
Sasl
Sasl登陸驗證服務(wù),在下面的介紹可以看到 Postfix 作為郵件發(fā)送服務(wù)器,不能無(wú)限制的轉發(fā)任意郵件,應當只轉發(fā)它信任的發(fā)件人發(fā)送的郵件,這一點(diǎn)體現在 Postfix 的配置文件要配置它認為安全的主機(mynetworks 參數)。但這樣會(huì )顯得很麻煩,Sasl 通過(guò)其它方式也可以幫助 Postfix 完成信任郵件的認證。
mail.52zt.info用A記錄解析到郵件服務(wù)器IP(后面的各個(gè)客戶(hù)端配置的域名都寫(xiě)這個(gè)A記錄的),再把52zt.info用MX記錄解析到mail.52zt.info(這個(gè)是當遇到***@52zt.info時(shí)會(huì )解析到mail.52zt.info)。
測試端口telnet命令也要用mail.52zt.info,不能用mx記錄的52zt.info(用這個(gè)會(huì )解析到A記錄解析的52zt.info)。

安裝軟件postfix、dovecot、cyrus-sasl
yum -y install postfix dovecot cyrus-sasl
vi /etc/postfix/main.cf
#修改以下配置,注意下面的變量不要重復,如果發(fā)現與原來(lái)的變量重名,那就將原來(lái)的變量給注釋掉#郵件服務(wù)器的主機名myhostname = mail.52zt.info#郵件域,@后面的域名mydomain = 52zt.info#往外發(fā)郵件的郵件域myorigin = $mydomain#監聽(tīng)的網(wǎng)卡inet_interfaces = allinet_protocols = all#服務(wù)的對象mydestination = $myhostname,$mydomain#郵件存放的目錄home_mailbox = Maildir/#新添加以下配置#--------自定義(下面可以復制粘貼到文件最后面,用于設置服務(wù)器驗為主,第一行設置發(fā)送附件大?。?message_size_limit = 100000smtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymousmynetworks = 127.0.0.0/8smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
smtpd_sasl_auth_enable = yes //開(kāi)啟認證
smtpd_sasl_security_options = noanonymous //不允許匿名發(fā)信
mynetworks = 127.0.0.0/8//允許的網(wǎng)段,如果增加本機所在網(wǎng)段就會(huì )出現允許不驗證也能向外域發(fā)信
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
允許本地域以及認證成功的發(fā)信,拒絕認證失敗的發(fā)信
檢查并啟動(dòng)postfix
postfix check #修改保存后檢查配置文件是否有錯systemctl start postfix #開(kāi)啟postfix服務(wù),CentOS6用service postfix startsystemctl enable postfix #設置postfix服務(wù)開(kāi)機啟動(dòng),CentOS6用chkconfig postfix on
vi /etc/dovecot/dovecot.conf
#修改以下配置protocols = imap pop3 lmtplisten = *, ::#新添加以下配置#-----------自定義------------!include conf.d/10-auth.confssl = nodisable_plaintext_auth = nomail_location = maildir:~/Maildir
啟動(dòng)dovecot
systemctl start dovecot #CentOS6用service dovecot startsystemctl enable dovecot #CentOS6用chkconfig dovecot on
vi /etc/sasl2/smtpd.conf #如果是空文件,需要自己添加
pwcheck_method: saslauthdmech_list: plain loginlog_level:3
vi /etc/sysconfig/saslauthd #修改下面配置項(本地用戶(hù)認證)
MECH=shadow
啟動(dòng)
systemctl start saslauthd #CentOS6用service saslauthd startsystemctl enable saslauthd #CentOS6用chkconfig saslauthd on
添加用戶(hù),并將密碼設為123456
useradd autumn echo 123456 | passwd --stdin autumn
yum -y install telnet-server telnet #安裝telnet客戶(hù)端
[root@mail ~]# telnet localhost 25Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.220 mail.52zt.info ESMTP Postfixmail from:autumn@52zt.info250 2.1.0 Okrcpt to:qy***@foxmail.com250 2.1.5 Okdata354 End data with <CR><LF>.<CR><LF>subject:這是主題this is test mail.250 2.0.0 Ok: queued as 6224C10263A

[root@mail ~]# telnet localhost 110Trying 127.0.0.1...Connected to localhost.Escape character is '^]'.+OK Dovecot ready.user autumn+OKpass 密碼+OK Logged in.list #列表查看郵件retr 1 #讀取編號為1的郵件quit #退出郵箱

安裝
yum install mailx -y
使用mailx發(fā)送郵件
echo '測試郵件內容' | mail -s '測試主題!' qy***@foxmail.com
收郵件延遲較高,不推薦使用

如果出現
服務(wù)器錯誤: '554 5.7.1 Relay access denied'
1,打開(kāi)outlook,點(diǎn)擊 “文件”“信息”bai,進(jìn)入 “賬戶(hù)設置”。
2,雙擊賬戶(hù),進(jìn)入更改賬戶(hù)。
3,點(diǎn)擊 “其他設置”,選擇發(fā)送服務(wù)器選項卡,勾選我的發(fā)送服務(wù)器要求驗證(如果忘記勾選,只能收到郵件卻不能發(fā)送郵件)

選中設置->賬號->定時(shí)收取郵件,設置好每隔多少分鐘拉取郵件.推薦使用Foxmail.

在起好了服務(wù),開(kāi)放了防火墻端口,設置了安全組的情況下。telnet localhost 25端口通,telnet 域名 25不通,是因為服務(wù)監聽(tīng)ip的問(wèn)題
vi /etc/postfix/main.cf
inet_interfaces=localhost 注釋掉這段,上面寫(xiě)了all,沒(méi)注意這里還有個(gè)localhost
聯(lián)系客服