Linux上Sendmail常常因爲一些配置問題,致使郵件發送失敗,下面整理、收集了一些郵件發送失敗、異常的案例。html
案例1:在新服務器上測試sendmail發送郵件時,發現郵件發送不成功,檢查/var/log/maillog日誌文件發現以下錯誤(Notice:hostname、郵箱地址等信息使用xxx代替)服務器
tail /var/log/maillogoracle
May 15 09:43:38 xxxxx sendmail[9182]: s4F1hcQe009182: from=root, size=58269, class=0, nrcpts=1, msgid=<201405150143.s4F1hcQe009182@xxxx>, relay=root@localhost
May 15 09:43:38 xxxxx sendmail[9182]: s4F1hcQe009182: to=konglb@xxxx, delay=00:00:00, mailer=esmtp, pri=88269, dsn=4.4.3, stat=queued
May 15 09:43:58 xxxxx sendmail[9186]: NOQUEUE: SYSERR(oracle): can not chdir(/var/spool/mqueue/): Permission denieddom
出現這個問題,是由於oracle帳號沒有權限訪問/var/spool/mqueue,須要授予相關權限,以下所示:測試
chmod 755 /var/spool/mqueueui
案例2:查看var/log/maillog日誌文件發現以下錯誤spa
May 15 10:21:41 xxxxx sendmail[9850]: s4F2LfrT009850: to=<konglb@xxxx>, delay=00:00:00, mailer=esmtp, pri=37549, dsn=4.4.3, stat=queued .net
出現這個問題是由於dns server不正確設置致使,須要修改/etc/resolv.conf 下的nameserver值。 unix
案例3:檢查/var/log/maillog發現以下信息,郵件狀態爲Sent(stat=Sent),可是依然沒有收到郵件。日誌
[root@DB-Server mail]# tail /var/log/maillog
Dec 18 11:15:01 nbolnx01 sendmail[25312]: sBI3F18J025312: from=<oracle@xxxx.xxxx>, size=607, class=0, nrcpts=1, msgid=<201412180315.sBI3F12b025302@nbolnx01.xxxx.xxxx>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Dec 18 11:15:01 nbolnx01 sendmail[25302]: sBI3F12b025302: to=oracle, ctladdr=oracle (502/502), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30290, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (sBI3F18J025312 Message accepted for delivery)
Dec 18 11:15:01 nbolnx01 sendmail[25327]: sBI3F1mw025327: from=<oracle@xxxx.xxxx>, size=599, class=0, nrcpts=1, msgid=<201412180315.sBI3F1Ba025321@xxxx.xxxx>, proto=ESMTP, daemon=MTA, relay=localhost.localdomain [127.0.0.1]
Dec 18 11:15:01 nbolnx01 sendmail[25321]: sBI3F1Ba025321: to=oracle, ctladdr=oracle (502/502), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30282, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (sBI3F1mw025327 Message accepted for delivery)
檢查mailq,以下所示,發現大量郵件處於等待發送的隊列
[root@DB-Server mail]# mailq
.................................................................
.................................................................
.................................................................
sBD2j1tq000440 214 Sat Dec 13 10:45 <oracle@xxxx.xxxx>
(host map: lookup (xxxx.com): deferred)
konglb@xxxx.com
sBD301x9000637 214 Sat Dec 13 11:00 <oracle@xxxx.xxxx>
(host map: lookup (xxxx.com): deferred)
konglb@xxxx.xxxx
Total requests: 120
[root@nbolnx01 mail]#
出現了"host map: lookup (domain): deferred"錯誤,意味着郵件的發送被延遲了。須要經過修改配置文件/etc/mail/sendmail.cf。找到 #O ResolverOptions=+AAONLY 這一行信息後將註釋取消掉,而後重啓sendmail服務便可解決問題。
[root@DB-Server ~]# service sendmail stop
Shutting down sm-client: [ OK ]
Shutting down sendmail: [ OK ]
[root@DB-Server ~]# service sendmail start
Starting sendmail: [ OK ]
Starting sm-client: [ OK ]
參考資料:
http://www.51osos.com/a/Linux_CentOS_RedHat/Linuxjichu/2010/1001/107.html
http://www.cnblogs.com/AloneSword/archive/2013/07/20/3203050.html
http://blog.chinaunix.net/uid-11888131-id-2804023.html