Linux上Sendmail经常由于一些配置问题,导致邮件发送失败,下面整理、收集了一些邮件发送失败、异常的案例。

案例1:在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查/var/log/maillog日志文件发现如下错误(Notice:hostname、邮箱地址等信息使用xxx代替)

tail /var/log/maillog

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 denied

出现这个问题,是因为oracle账号没有权限访问/var/spool/mqueue,需要授予相关权限,如下所示:

chmod 755 /var/spool/mqueue

案例2:查看var/log/maillog日志文件发现如下错误

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

出现这个问题是因为dns server不正确设置导致,需要修改/etc/resolv.conf 下的nameserver值。

案例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

http://fanli7.net/a/caozuoxitong/OS/20120703/180401.html

http://blog.csdn.net/kindy1022/article/details/7639096

Linux SendMail发送邮件失败诊断案例(二)的更多相关文章

  1. Linux SendMail发送邮件失败诊断案例(三)

    一Linux服务器突然发送不出邮件,检查了很多地方都没有发现异常,检查/var/log/maillog发现如下具体信息: Apr 12 00:36:04 mylinux sendmail[4685]: ...

  2. Linux SendMail发送邮件失败诊断案例(四)

    最近又碰到一起Linux下SendMail发送邮件失败的案例,邮件发送后,邮箱收不到具体邮件, 查看日志/var/log/maillog 发现有"DSN: User unknown" ...

  3. Linux sendmail发送邮件失败诊断案例(一)

    在新服务器上测试sendmail发送邮件时,发现邮件发送不成功,检查日志文件发现如下错误(Notice:由于涉及公司服务器,邮箱等,故下面hostname.邮箱地址等信息使用xxx代替) tail - ...

  4. 转 Linux SendMail发送邮件失败诊断案例(四)

    http://www.cnblogs.com/kerrycode/p/7826036.html

  5. Linux系统下sendmail发送邮件失败的问题

         问题是:安装完sendmail,启动服务后,发送邮件第一次发送成功,后面再次无论怎么发送都不行,换邮箱也不行.在确认我的邮件发送格式正确无误后,想到查看邮件发送日志: [root@backu ...

  6. linux下使用软连接之案例二

           在笔者的上一篇文章介绍过怎么通过linux的软连接在不修改上传代码的情况下,将上传到项目路径下的图片改为上传到项目外面,防止重新部署后图片被删除了.同时还可以直接通过类似访问静态资源的方 ...

  7. Linux phpmailer发送邮件失败的解决方法

    (本地windows phpmailer发送ok 放到linux发送失败) 原因:linux  通过465端口进行更安全的SMTPS协议发送邮件 windows 是基于smtp  25端口的 因此 可 ...

  8. 使用 spring封装的javamail linux服务器发送邮件失败解决

    原文参考:https://blog.csdn.net/a540891049/article/details/79385471 由于某些平台的linxu服务器为了安全起见 屏蔽了发送邮件的常用端口 25 ...

  9. Linux简单配置SendMail发送邮件

    本文简单整理了一下如何在Linux服务器上安装.配置SendMail发送邮件的步骤,此文不是配置邮件服务器,具体测试环境为CentOS Linux release 7.2.1511 (Core) ,如 ...

随机推荐

  1. Visual Studio Code 智能提示文件

    Visual Studio Code 开发前端和node智能提示 visual studio code 是一个很好的编辑器,可以用来编写前端代码和nodejs. 我很喜欢使用VSC,现在流行框架对VS ...

  2. php对文本文件进行分页功能简单实现

    php对文本文件进行分页功能简单实现 <!DOCTYPE> <html> <head> <meta http-equiv="Content-type ...

  3. 算法:KMP算法

    算法:KMP排序 算法分析 KMP算法是一种快速的模式匹配算法.KMP是三位大师:D.E.Knuth.J.H.Morris和V.R.Pratt同时发现的,所以取首字母组成KMP. 少部分图片来自孤~影 ...

  4. 原创:从零开始,微信小程序新手入门宝典《一》

    为了方便大家了解并入门微信小程序,我将一些可能会需要的知识,列在这里,让大家方便的从零开始学习:一:微信小程序的特点张小龙:张小龙全面阐述小程序,推荐通读此文: 小程序是一种不需要下载.安装即可使用的 ...

  5. 《HelloGitHub月刊》第08期

    <HelloGitHub>第08期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览GitHub过程中,发现的有意思.高质量.容 ...

  6. Extjs4.0以上版本 Ext.Ajax.request请求的返回问题

    Ext.Ajax.request({ url: posturl, method: 'POST', params: { ClassName: 'XXXX', FuncName: 'XXXX', para ...

  7. Ionic2学习笔记(8):Local Storage& SQLite

    作者:Grey 原文地址: http://www.cnblogs.com/greyzeng/p/5557947.html              Ionic2可以有两种方式来存储数据,Local S ...

  8. STM32CubeMX安装指南

    1.STM32CubeMX软件下载 地址:http://pan.baidu.com/s/1bn8sXOV 密码:6u3p 2.安装     1)安装Java SDK     2)安装SetupSTM3 ...

  9. jQuery获取Select选中的Text和Value

    获取Select选中的Text和Value语法解释:$("#select_id").change(function(){//code...});   // 为Select添加事件, ...

  10. cron表达式详解[转]

    Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month ...