You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sendmail无法找到收件人导致邮件发送失败的排查求助

Sendmail无法找到收件人导致邮件发送失败的排查求助

我正在尝试在服务器上配置sendmail来发送告警通知,查了不少网上的指南后,还是没法把外发邮件送到我的工作邮箱。根据我看到的资料,sendmail不需要额外配置就能发邮件,我已经检查了25端口、DNS配置,也修改了主机名,但都没成功。下面是我收到的退信:

From: Mail Delivery Subsystem MAILER-DAEMON@company.com
Message-Id: 202307050151.3651ovxS001207@company.com
To: root@company.com
MIME-Version: 1.0
Content-Type: multipart/report; report-type=delivery-status;
boundary="3651ovxS001207.1688521876/company.com"
Subject: Returned mail: see transcript for details
Auto-Submitted: auto-generated (failure)

This is a MIME-encapsulated message

--3651ovxS001207.1688521876/company.com

The original message was received at Wed, 5 Jul 2023 01:50:57 GMT
from root@localhost

----- The following addresses had permanent fatal errors -----
staff.recipient@company.com
(reason: 550 5.1.1 staff.recipient@company.com... User unknown)
(expanded from: staff.recipient@company.com)

----- Transcript of session follows -----
... while talking to [127.0.0.1]:

DATA
<<< 550 5.1.1 staff.recipient@company.com... User unknown
550 5.1.1 staff.recipient@company.com... User unknown
<<< 503 5.0.0 Need RCPT (recipient)

--3651ovxS001207.1688521876/company.com
Content-Type: message/delivery-status

Reporting-MTA: dns; company.com
Arrival-Date: Wed, 5 Jul 2023 01:50:57 GMT

Final-Recipient: RFC822; staff.recipient@company.com
Action: failed
Status: 5.1.1
Remote-MTA: DNS; [127.0.0.1]
Diagnostic-Code: SMTP; 550 5.1.1 staff.recipient@company.com... User unknown
Last-Attempt-Date: Wed, 5 Jul 2023 01:51:16 GMT

--3651ovxS001207.1688521876/company.com
Content-Type: message/rfc822

Return-Path:
Received: (from root@localhost)
by company.com (8.15.2/8.15.2/Submit) id 3651ovxR001207
for staff.recipient@company.com; Wed, 5 Jul 2023 01:50:57 GMT
Date: Wed, 5 Jul 2023 01:50:57 GMT
From: root
Message-Id: 202307050150.3651ovxR001207@company.com
Subject: Test email

Test email from linode

--3651ovxS001207.1688521876/company.com--

从退信里能明显看到,sendmail一直在尝试连接本地的127.0.0.1投递邮件,还把staff.recipient@company.com当成了本地用户,但服务器上根本没有这个用户,所以才会报“User unknown”的错误。给你几个关键的排查方向:

  • 检查本地域名配置:打开/etc/mail/local-host-names文件看看,如果里面有company.com这条记录,sendmail会默认把这个域名当作本地域名,所有发往该域名的邮件都会优先尝试在本地服务器找用户,而不是转发到外部邮件服务器。如果有这个条目,把它注释掉或者删除,然后重启sendmail服务:systemctl restart sendmail(或者service sendmail restart,看你的系统版本)。

  • 配置智能主机(Smart Host):如果你们公司有专门的邮件服务器,应该让sendmail通过这个服务器转发所有外发邮件。编辑sendmail的m4配置文件(一般是/etc/mail/sendmail.mc),添加或修改这一行:

    define(`SMART_HOST',`mail.company.com')dnl
    

    把mail.company.com换成你们公司实际的邮件服务器地址,然后运行m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf生成新的配置文件,最后重启sendmail服务。

  • 验证MX记录解析:用dig company.com MX命令检查company.com的MX记录是否正确指向了你们公司的邮件服务器。如果MX记录配置错了,sendmail找不到正确的投递目标,就会转而尝试本地投递。

  • 查看详细日志:去/var/log/maillog或者/var/log/mail.log里找sendmail的详细日志,里面会记录更完整的投递过程,能帮你确定到底是DNS问题、配置问题,还是网络连接的问题。

另外还要提一句,有些云服务商(比如你用的Linode)可能默认封禁了25端口,需要你在控制台申请解封,这也会导致外发邮件失败,这个点也可以排查下。

备注:内容来源于stack exchange,提问作者user6354238

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 07:43:04