SendMail与Postfix的架构备忘2
?
一。發(fā)送郵件的二種方式:
1.mail命令發(fā)送 特點快
1)mail -s "Hello from mzone.cc by shell" admin@mzone.cc
2)hello,this is the content of mail.
3)welcome to www.mzone.cc
第一行是輸入的命令,-s表示郵件的主題,后面的admin@mzone.cc則是郵件的接收人,輸入完這行命令后回車,會進(jìn)入郵件正文的編寫,我們可 以輸入任何文字,比如上面的兩行。當(dāng)郵件正文輸入完成后,需要按CTRL+D結(jié)束輸入,此時會提示你輸入Cc地址,即郵件抄送地址,沒有直接回車就完成了 郵件的發(fā)送。
2. SMTP命令發(fā)送,繁瑣,了解交互過程
1)telnet smtpserver? 25
2)helo localhostname
3)mail from:? user1@domain1.com? 發(fā)送者
4)rcpt to:admin@mzone.cc? 接收者
5)data 初始化內(nèi)容
From:user1@domain1.com
To:user2@domain2.com
Subject: Hello from mzone.cc by shell
hello,this is the content of mail.welcome to www.mzone.cc
.?? 句號表示正文結(jié)束,就象上面的CTRL+D
?
6)quit
二。理解中繼:relay 表示該smtp服務(wù)器是smtp服務(wù)器鏈路上的一個節(jié)點。但不是最終的節(jié)點。中繼節(jié)點是收了再轉(zhuǎn),而最終節(jié)點只收不轉(zhuǎn)。
三。錯誤場景:郵件有時能收到,有時收不到。
按理說web應(yīng)用對應(yīng)的多臺服務(wù)器會本地中繼到到adm01c上。但是發(fā)現(xiàn)某些新加的web應(yīng)用服務(wù)器并沒有在/var/log/mail/maillog里面寫日志。
驗證方式:grep SMART /etc/mail/sendmail.mc沒有發(fā)現(xiàn)相應(yīng)的內(nèi)容。可以確定這些新增的服務(wù)器沒有安裝SendMail導(dǎo)致它們的發(fā)郵件功能有問題。
解決:
安裝SendMail: 注意找sendmail-cf而不是sendmail
yum search sendmail-cf
yum install sendmail-cf -y
同時修改/etc/mail/sendmail.mc文件的SMART_HOST值。并通過m4編譯輸出到sendmail.cf文件。編譯之前,注意將舊的sendmail.cf做備份。之后啟動#service sendmail start
四。Postfix的日志分析
下面是一個成功發(fā)送郵件的日志片段:
Feb 23 01:53:20 adm01c postfix/smtpd[15584]: connect from web04c.daodao.com[192.168.1.114]
Feb 23 01:53:20 adm01c postfix/smtpd[15584]: 7CD1C1C00121: client=web04c.daodao.com[192.168.1.114]
Feb 23 01:53:20 adm01c postfix/cleanup[15587]: 7CD1C1C00121: message-id=<201202230652.q1N6poqV005021@web04c.daodao.com>
Feb 23 01:53:20 adm01c postfix/qmgr[19139]: 7CD1C1C00121: from=<support@daodao.com>, size=566, nrcpt=1 (queue active)
Feb 23 01:53:20 adm01c postfix/smtpd[15584]: disconnect from web04c.daodao.com[192.168.1.114]
Feb 23 01:53:22 adm01c postfix/smtp[15588]: 7CD1C1C00121: to=<bogaoyi@gmail.com>, relay=gmail-smtp-in.l.google.com[209.85.225.26]:25, delay=2.4, delays=0.06/0.01/1.1/1.2, dsn=2.0.0, status=sent (250 2.0.0 OK 1329980002 vw6si606526igb.60)
Feb 23 01:53:22 adm01c postfix/qmgr[19139]: 7CD1C1C00121: removed
Feb 23 02:13:28 adm01c postfix/smtp[17246]: connect to pp.com[74.117.114.92]: Connection timed out (port 25)
Feb 23 02:13:28 adm01c postfix/smtp[17246]: 9BC951C00123: to=<1158824774@pp.com>, relay=none, delay=262614, delays=262584/0.01/30/0, dsn=4.4.1, status=deferred (connect to pp.com[74.117.114.92]: Connection timed out)
Feb 23 02:14:27 adm01c postfix/smtpd[17319]: connect from bak01c.daodao.com[192.168.1.131]
Feb 23 02:14:27 adm01c postfix/smtpd[17319]: 800B21C00121: client=bak01c.daodao.com[192.168.1.131]
Feb 23 02:14:27 adm01c postfix/cleanup[17321]: 800B21C00121: message-id=<1919695525.581329981267430.JavaMail.root@bak01c.daodao.com>
Feb 23 02:14:27 adm01c postfix/smtpd[17319]: disconnect from bak01c.daodao.com[192.168.1.131]
Feb 23 02:14:27 adm01c postfix/qmgr[19139]: 800B21C00121: from=<support@daodao.com>, size=7617, nrcpt=2 (queue active)
Feb 23 02:14:28 adm01c postfix/smtp[17064]: 800B21C00121: to=<112733485@qq.com>, relay=mx3.qq.com[113.108.76.219]:25, delay=0.99, delays=0.02/0/0.23/0.74, dsn=2.0.0, status=sent (250 Ok: queued as )
Feb 23 02:14:29 adm01c postfix/smtp[17244]: 800B21C00121: to=<support-daodao@tripadvisor.com>, relay=webmail.tripadvisor.com[146.115.38.21]:25, delay=2.3, delays=0.02/0/1.3/0.9, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued as 090E51798D5CC)
在postfix的日志里:
如果status=sent表示已經(jīng)成功發(fā)送。removed表示從隊列中刪除發(fā)送的郵件
如果status= deferred表示延期,需要重試,當(dāng)重試到一定次數(shù),還失敗就拋棄
五。MX記錄
最初以為發(fā)不出郵件是由于MX記錄的問題。MX是DNS多種類型的記錄中的一種。DNS經(jīng)常使用的是A記錄。用來根據(jù)根據(jù)rcpt to對應(yīng)的郵箱取出后面的域名進(jìn)行路由時的依據(jù)。
下面是postfix的MX路由報錯,因為用戶把sina寫成了sian,tripadvisor寫成了tripdvisor導(dǎo)致無法路由
Feb 23 02:13:05 adm01c postfix/smtp[17064]: 48F561C00080: to=<hygy2011@sian.com>, relay=none, delay=167680, delays=167673/0/6.9/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=sian.com type=MX: Host not found, try again)
Feb 23 02:13:05 adm01c postfix/smtp[17244]: 412C31C0011C: to=<lsbg4228575@sian.com>, relay=none, delay=92243, delays=92236/0.01/7/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=sian.com type=MX: Host not found, try again)
Feb 23 02:13:10 adm01c postfix/smtp[17245]: C9EA01C0003C: to=<gpotter@tripdvisor.com>, relay=none, delay=322597, delays=322586/0.01/12/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=tripdvisor.com type=MX: Host not found, try again)
轉(zhuǎn)載于:https://www.cnblogs.com/highriver/archive/2012/02/24/2367141.html
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的SendMail与Postfix的架构备忘2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于项目中属性配置文件的改进
- 下一篇: flex 鼠标放在组件上变手型