【小(xiǎo)編推薦】CentOS sendmail更改為(wèi)✘λδ→postfix默認發信的(de)設置

2014-10-08   |&n×αbsp;  發布者:梁國(guó)芳 &nb§≈☆↑sp; |   查γβ看(kàn):3320次

linux
 一(yī)、配置Postfix并啓用(yòng)




postfix是(shì)CentOS默認安裝的(de)郵件♠ ★★(jiàn)服務器(qì)軟件(jiàn)。以下(xià)™☆≠配置示例假設要(yào)配置的(de)域名是(shìσλ§÷)0fafa.com,郵件(jiàn)服務器(qì)主機(₩​jī)名是(shì)mail.0fafa.com✔♦∏↔。

1. 打開(kāi)postfix的(de)配置文(wén)件(j↓Ωεiàn)(基本上(shàng)修改的(de)是→↑(shì)将這(zhè)些(xiē)行(π₹‍xíng)前面有(yǒu)#的(de)需±$≤要(yào)删除)

vi /etc/postfix/main.cf

2. :75 光(guāng)标移至第75行(xíng),修改↕α↑$myhostname

myhostname = email.ali $yun.com

3. :83 光(guāng)标移至第83行(xíng),修改mydoma÷‍↑∞in

mydomain = aliyun.com

4. :99 光(guāng)标移至第99行(₽♠≤xíng),修改myorigin

myorigin = $mydomain

5. :116光(guāng)标移至第116行×↕(xíng),修改inet_interfa↓©ces

inet_interfaces = all

6. :119光(guāng)标移至第119行✘δ(xíng),修改inet_protocols

inet_protocols = ipv4

7. :164光(guāng)标移至第164行(xíng),添加$myd∏≈omain

mydestination = $myhostname, loπδcalhost.$mydomain, localhost, $mydε"‌γomain, aliyun.com

# 最後一(yī)個(gè)參數(shù)為(wèi)指定發給本§Ω地(dì)郵件(jiàn)的(de)域名

8. :264光(guāng)标移至第264行(xíng),♣ 修改mynetworks

mynetworks = 168.100.189.0/28,÷₽ 127.0.0.0/8

#指定內(nèi)網和(hé)本地(dì)的(de)IP地(dì)址範圍,按照♣←β♠(zhào)情況修改,一(yī)般無需變動

9. :296光(guāng)标移至第296行(xíng),♣↑☆修改relay_domains

relay_domains =

10. :419光(guāng)标移至第419行(xíng),設置home↔ _mailbox

home_mailbox = Maildir/

11. :425 光(guāng)标移至第425行(xíng)↑♠‍,設置mail_spool_directory,/data是(shì)之前挂載​δ"的(de)數(shù)據盤,mail目錄¥φ需要(yào)通(tōng)過mkdir命令創建

mail_spool_directory ↕<= /data/mail

12. 重啓postfix使設置生(shē≈✘♦→ng)效

service postfix restart

# 這(zhè)裡(lǐ),如(rú)果重啓出現(xφ"≠✘iàn)如(rú)下(xià)情況也(yě)不(bù><€)要(yào)驚訝,因為(wèi)你(nǐ)沒啓動過Postfix因​δ而關閉肯定failed。第一(yī)次啓動可(kě)能(nén$∑≈★g)時(shí)間(jiān)長(cháng)一(yī)點。
 

二、停止sendmail服務及卸載,并設置Postfix為(wèi)默認郵件(jiàn)程序

如(rú)果你(nǐ)之前開(kāi)了(le)send®δ♠↓mail,首先請(qǐng)停用(yòng☆")并卸載。因為(wèi)在用(yòng)Postφ÷≤$fix作(zuò)為(wèi)SMTP服£‌務器(qì)的(de)前提下(xià),我們不(bù)準備再用(yòng)s"☆☆↔endmail。所以一(yī)不(bù)做×≤λ(zuò)二不(bù)休,将sendmail服務關掉。

/etc/rc.d/init.d/sendmail stop

之後會(huì)顯示如(rú)下(xià)信息: (或者不(bù)顯示∑ ‌)

Shutting down sendmail:         ["€α OK ]

Shutting down sm-cli©♥∏ent:         [ OK ]

之後再輸入如(rú)下(xià)命令:

chkconfig sendmail off

# 關閉sendmail自(zì)啓動

chkconfig –list sendmail

# 确認sendmail自(zì)啓動已被關閉(都(dōu)為•σ‍←(wèi)off就(jiù)OK)

之後會(huì)顯示如(rú)下(xià)信息:

sendmail 0:off 1:off 2:off 3¥©:off 4:off 5:off 6:of♠"f

然後再将默認的(de)MTA設置為(wè↓✔≤¥i)Postfix:

alternatives –config mta

# 設置默認MTA

之後會(huì)顯示如(rú)下(xià)信息:

There are 2 programs which pβ♥​☆rovide ‘mta’.

Selection Command

—————&m≠πdash;——&m ★×&dash;————&mdas©<≤h;——&mdas★​♠"h;

1     &"↓ ♣nbsp;     /usr'¶/sbin/sendmail.postfix'♦

*+ 2   &n→αbsp;    &nbs★∞♥p;  /usr/sbin/sendmail.sendmai

# 當前狀态:sendmail為(wèi)默認MTA

Enter to keep the current s↓¶election[+], or type select&π≥÷ion number: 1

# 在這(zhè)裡(lǐ)輸入1,使Postfix成為(wèi)默α‍ 認MTA。如(rú)果你(nǐ)的(de)Pε ♣♣ostfix那(nà)行(xíng)前面的(de)Selec∏‌∑‌tion那(nà)列為(wèi)2,則輸入2

然後就(jiù)是(shì)最後一(yī)步了(le),♣ 卸載掉sendmail:

yum remove sendmail

三、啓動相(xiàng)應服務

最後,啓動Postfix服務,并設置相(xγ≈iàng)應服務為(wèi)自(zì)啓動。≥≥

chkconfig postfix on

# 将Postfix設置為(wèi)自(zì)啓動

chkconfig –list p¥₽ε→ostfix

# 确認Postfix服務狀态

之後會(huì)顯示如(rú)下(xià)信息:

postfix 0:off 1:off 2:on 3:oσ∏"®n 4:on 5:on 6:off

# 确認2~5為(wèi)on的(de)狀态就(jiù₽←)OK

/etc/rc.d/init.d/postfix start

# 啓動Postfix

之後會(huì)顯示如(rú)下(xià)信息:(如(rú)果啓動& 過請(qǐng)重啓) (或者不(bù)↑₽顯示)

Starting postfix:     ®∑       [ OK ]

四、測試及其他(tā)詳細設置

測試用(yòng)telnet測試郵件(jiàn)服務器(qì)是(shì)否正常

1. 在郵件(jiàn)服務器(qì)上(shàng)安 ∞↔₹裝telnet

yum install telnet

2. 連接服務器(qì)SMTP端口

telnet 127.0.0.1 25

3. 填寫發件(jiàn)人(rén)

MAIL FROM:

回車(chē)

4. 填寫收件(jiàn)人(rén)

RCPT TO:contact@163.com

回車(chē)

5. 撰寫郵件(jiàn)內(nèi)容

5.1 開(kāi)始寫郵件(jiàn)內(nèi)容

DATA

回車(chē)

5.2 輸入标題

Subject: test messag↕≠♠≥e

回車(chē)

5.3 輸入內(nèi)容,并以.号結束

test body

.

如(rú)果顯示下(xià)面的(de)信息,說(shuō)明(míng)±φ✘÷郵件(jiàn)進入發送隊列

250 2.0.0 Ok: queued as 88D6D32A94

測試函數(shù)調用(yòng)發信:

将一(yī)下(xià)文(wén)本複制(zhì)到(dào)新✘>®∑建PHP文(wén)件(jiàn)中,如(rú)1.phγ☆p,上(shàng)傳到(dào)網站(•→₩<zhàn)跟目錄并打開(kāi)測試是(shì)否能(nénβΩg)夠收到(dào)信件(jiàn):

$send = mail(‘你(nǐ)的(de)郵箱™ 地(dì)址’, ‘αφ₹‍My Subject’, ‘The test maλ∑il’);
if($send){echo ‘發送成功';}else{echo₹£© ‘發送失敗';}
?>

其他(tā)詳細設置:

上(shàng)述測試函數(shù)調用(yòng)發信問(wèn)題

如(rú)果不(bù)能(néng)發送§>σ¥成功,檢查php.ini的(de)710行(xíng)的><'☆(de) sendmail_path 并且去(qù)掉前面的(de)分♦πγ×(fēn)号,最後修改成:

sendmail_path = /usr/sbin/sendmaπ₹il -t –i

授權其他(tā)服務器(qì)通(tōng)過該郵件(★↕jiàn)服務器(qì)發送郵件(jiàn)

未授權的(de)情況下(xià),如(rú)果在其他(tā)服務器(q&∑ì)telnet這(zhè)台服務器(qì)×↑,在輸入收件(jiàn)人(rén)之後會(huì)出現(xiàn>✔)Relay access denied錯ε≈™§(cuò)誤

RCPT TO:contact@163.com

554 5.7.1

解決方法:

vi /etc/postfix/mainφ✔.cf,:264将光(guāng)标移至第264©↕行(xíng),在mynetworks的(de)值之後加這(zhèβ×‍)台的(de)服務器(qì)IP地(dì)址,比如(rú):

mynetworks = 127.0.0.→∏∞0/8 58.33.14.124

service postfix resta$ε<rt之後,問(wèn)題解決。

其他(tā)問(wèn)題

收到(dào)上(shàng)面telnet發出的(de)郵件♦"(jiàn)時(shí),你(nǐ)會(huì)發₽•εβ現(xiàn)收件(jiàn)人(rén)信息顯示§∞的(de)是(shì)undisclosed recipients,解決方法是←§(shì)在DATA命令之後,輸入Subject之前,分(fēn♣±ε≥)别輸入:

FROM:test@aliyun.com

TO:contact@163.com
=========================♠'φ============================≥×α₹=============

postfix   常用(yòng)命令。

常用(yòng)操作(zuò):
postqueue -p 列出隊列裡(lǐ)的(de)所有(yǒ↑€u)郵件(jiàn)
postsuper -d ID 删除一(yī)封郵件(j®®αiàn)
postsuper -d ALL 删除所有(yǒu)郵↓™件(jiàn)
postsuper –h ID 保留郵件(ji×₹§∏àn)
postsuper -r ALL 重新排例
postcat -q ID   顯示郵件(ji×&≤àn)內(nèi)容
postqueue -f   清空(k♣φ$™ōng)郵件(jiàn)

如(rú)果 顯示發送成功,但(dàn)是(s×ε§hì)一(yī)直收不(bù)到(dào)郵件(jiàn)×±。


日(rì)志(zhì)顯示(或者post♦​∞ queue -p)

 Host or domain name"≠♥✘ not found. Name service error for name→←≈≠=qq.com type=MX: Host not found, try a‍¥♦gain


可(kě)能(néng)是(shì)dns 的(d&←e)問(wèn)題。修改下(xià)dn∏ s 8.8.8.8  。