Sendmail无法邮寄信件的问题

运维 系统运维
Mail虽然很便捷,但是却无法寄出去信件。可是,你已经将sendmail设定好了。情况到底出在哪里呢?本文主要介绍的是出现这几种状况的可能性。快来看看你的sendmail出现的是哪一种问题!

  sendmail 无法邮寄信件的情况:

  虽然 Mail 很方便,但是仍然会有无法邮寄信件的时候 !如果您已经设定好 Sendmail 了,但是总是无法邮寄出去,那可能是什么问题呢?

  1.sendmail 无法邮寄信件的情况:关于硬件配备

  无论任何情况之下,如果硬件出问题,那么所有的服务都将不正常啦!所以,请先检查您的硬件是否“怪怪的!”这个先确认 OK 吧!

  2. sendmail 无法邮寄信件的情况:关于网络参数的问题

  如果连不上 Internet ,那么哪里来的 Mail Server 呢?所以请先确认你的网络已经正常的启用了!关于网络的确认问题,请查阅前几篇“Linux 网络侦错”的内容介绍;

  3.sendmail 无法邮寄信件的情况: 关于服务的问题

  请务必确认 port 25 与 port 110 已经正确的启动了!使用 netstat 指令即可了解是否已经启动该服务!

  4. sendmail 无法邮寄信件的情况:关于防火墙的问题

  很多时候,很多朋友使用 Red Hat 或者其它 Linux distribution 提供的防火墙设定软件,结果忘了启动 port 25 与 port 110 的设定,导致无法收发信件!请特别留意这个问题喔!可以使用 iptables ( 核心为 2.4.xx 版本 ) 或者是 ipchains ( 核心为 2.2.xx 版本 ) 来检查是否已经启用该 port 呢!其余请参考简易防火墙设定那一章喔!

  5. sendmail 无法邮寄信件的情况:关于 TCP_Wrappers 的问题

  如果你的 sendmail 还有支持 tcpd 这个程序 (或者说是 libwrap 这个函式库 ) 的话,那么在 /etc/hosts.allow 与 /etc/hosts.deny 的设定也会影响到收发信件的正常与否!如果 /etc/hosts.deny 有设定“ALL: ALL”的话,那么请务必在 /etc/hosts.allow 里面加设“ sendmail: ALL ”喔!

  6. sendmail 无法邮寄信件的情况:关于设定档的问题

  在 sendmail 8.11 版本中,仅有 sendmail.cf 这个设定档,但是在 8.12 当中多了个 submit.cf 这个寄信功能档案,请务必确定您的 *.mc 设定是正确的!

  有一次在测试的时候,一直发信无法将信件寄出去!明明 sendmail.mc 都没有什么问题,就是 local 无法寄信!后来才发现,因为我更动过 submit.mc 这个档案,重新以 m4 跑过之后,忘记将他给改回来了!结果花了我两天的时间在搞 sendmail.mc ....所以,在作任何一步动作的时候,请千万记住“作笔记”或者“将动作记下来!”

  7. sendmail 无法邮寄信件的情况:关于档案权限的问题

  一般来说,如果以 RPM 安装 sendmail 会比较没有问题,而如果以 Sendmail 8.12 以后版本手动安装的话,那由于 sendmail 对于安全的要求越来越严格,所以你必须针对每个目录或档案进行检查才行!通常检查的目录为:

  /etc/mail :里面的档案至少都为 644 或 640 的权限!

  /var/spool/mqueue :务必为 700 的权限

  /var/spool/clientmqueue:这在 8.12 才有,所有人与群组务必为 smmsp ,而权限务必为 770 ;

  每个 ./forward 的档案需要控制其权限喔!在 8.12 版本中, .forward 的“拥有群组”必须要为 smmsp ,并且其权限必须要为 640 才行喔!

  8. sendmail 无法邮寄信件的情况:关于使用者的设定问题

  一般而言,如果使用者不登入 sendmail 主机进行寄信的动作( local mailer ),那么 /etc/passwd 里面的设定就无关紧要了!不过,如果该使用者想要在 sendmail 本机上面使用 mail 的功能,那么在 8.12 版本当中,您就必须要:

  使用者的 primary 群组必须要为 smmsp !

  使用者的 shell 必须要可以登入才行!

  其它使用者的相关档案当中,最明显的 .forward 权限必须设定正确!

  9.sendmail 无法邮寄信件的情况: 其它档案的设定问题

  如果发现只有某个 domain 可以寄信,其它的同一主机的 domain 无法寄信,需要检查 local-host-names 这个档案的设定;

  如果发现邮件被挡下来了!而且老是显示 reject 的字样,那么可能被 /etc/mail/access 挡住了;

  如果发现邮件队列 (mailq) 存在很多的邮件,可能是 DNS 死掉了,请检查 /etc/resolv.conf 的设定是否正确!

  10. sendmail 无法邮寄信件的情况:其它可能的问题

  最常发生的就是认证的问题了!这是由于使用者没有在 MUA 上面设定“我的邮件需要认证”的选项啦!请叫你的 client 端用户赶紧勾选吧!

  11.sendmail 无法邮寄信件的情况: 还是不知道问题的解决方案

  一般而言,上面的几个讯息应该可以提供您校正 sendmail 的问题了,不过,如果还是查不出问题的话,那么请务必检查您的 /var/log/maillog (有的时候是 /var/log/mail ,这个要看 /etc/syslog.conf 的设定 ),当你寄出一封信的时候。

  例如 vbird 寄给 bird2@tsai.adsldns.org 时,那么 maillog 档案里面会显示出两行,一行为 from vbird一行为 to bird2@tsai.adsldns.org,也就是“我由哪里收到信,而这封信会寄到哪里去!”的意思,由这两行就可以了解问题了!尤其是 to 的那一行,里面包含了相当多的有用信息,包括邮件无法传送的错误原因的纪录!

【编辑推荐】

  1. Sendmail的功能之别名设定与邮件备份
  2. Sendmail的功能之群发
  3. Sendmail的邮件目录
  4. Sendmail邮件收受流程(一)
  5. Sendmail邮件收受流程(二)
  6. Sendmail的功能之寄送外部邮件
  7. Sendmail配置笔记之配置篇
  8. Sendmail配置笔记之安装篇
责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-01-21 12:12:54

sendmail

2023-01-07 10:17:06

微服务架构模式

2011-01-21 16:40:58

NagiosSendmail

2011-01-18 15:00:57

2013-03-18 09:56:18

2011-01-21 10:58:57

sendmail流程

2011-01-21 10:46:47

sendmail流程

2011-01-21 10:39:48

sendmail

2011-01-21 09:49:18

sendmail目录

2011-01-21 09:17:39

sendmail目录

2011-01-19 10:11:22

sendmail安装方法

2011-01-21 12:58:23

2010-04-19 17:18:14

2011-01-21 10:59:01

sendmail群发

2011-01-18 14:24:03

Linuxsendmail配置

2011-01-18 16:23:23

2010-06-03 13:56:54

Sendmail 配置

2013-12-05 09:45:04

HadoopHadoop架构图

2010-06-03 13:44:35

Sendmail配置

2011-01-21 10:38:52

sendmail
点赞
收藏

51CTO技术栈公众号