在 CentOS 上发送电子邮件时将消息保存在 /usr/rp//dead.letter 中

在 CentOS 上发送电子邮件时将消息保存在 /usr/rp//dead.letter 中

我们刚刚将服务器从 RHEL 更改为 CentOS。我们有一些脚本可以运行一些报告并通过电子邮件发送它们。执行电子邮件的部分如下。

function email_report
{
    ( echo "Report attached."; uuencode report.csv report.csv ) |
    mail -s "Report" [email protected] -- -f [email protected]

}

但未收到报告,我们看到以下消息:

/usr/rp/dead.letter... 在 /usr/rp//dead.letter 中保存消息

有谁知道如何解决这个问题?正是这个脚本导致了该消息。其他发送电子邮件的脚本没有问题。

内容dead.letter

From rp Fri Oct  7 11:56:02 2016
Return-Path: <rp>
Received: (from rp@localhost)
        by EXAMPLESERVER.localdomain (8.14.4/8.14.4/Submit) id u97Au2No020739;
        Fri, 7 Oct 2016 11:56:02 +0100
From: rp
Message-Id: <[email protected]>
Date: Fri, 07 Oct 2016 11:56:02 +0100
To: [email protected], -f, --, [email protected]
Subject: Report
User-Agent: Heirloom mailx 12.4 7/29/08
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Report attached.
begin 664 OSWHMFHXSF.csv
M15)23U(Z"D]202TQ,C$U-#H@5$Y3.F-O=6QD(&YO="!R97-O;'9E('1H92!C
M;VYN96-T(&ED96YT:69I97(@<W!E8VEF:65D"@H*4U`R+3`S,#8Z($EN=F%L
M:60@;W!T:6]N+@I5<V%G93H@0T].3EM%0U1=(%ML;V=O;ET@6T%3('M365-$
M0D%\4UE33U!%4GU="G=H97)E(#QL;V=O;CX@(#HZ/2`\=7-E<FYA;64^6R\\
M<&%S<W=O<F0^75M`/&-O;FYE8W1?:61E;G1I9FEE<CY=('P@+PI34#(M,#,P
M-CH@26YV86QI9"!O<'1I;VXN"E5S86=E.B!#3TY.6T5#5%T@6VQO9V]N72!;
M05,@>U-94T1"07Q365-/4$52?5T*=VAE<F4@/&QO9V]N/B`@.CH](#QU<V5R
M;F%M93Y;+SQP87-S=V]R9#Y=6T`\8V]N;F5C=%]I9&5N=&EF:65R/ET@?"`O
M"E-0,BTP,34W.B!U;F%B;&4@=&\@0T].3D5#5"!T;R!/4D%#3$4@869T97(@
<,R!A='1E;7!T<RQE>&ET:6YG(%-13"I0;'5S"@``
`
end

答案1

事情dead.letter很容易解释:这是如果邮件应该发送但邮件发送软件找不到发送方法的标准反应。

因此,您需要找出为什么该脚本不起作用而其他脚本不起作用。

尝试的第一步是从命令行运行成功脚本和失败脚本的邮件命令。这样,找出是否是错误的命令行选项(这些选项在发行版之间可能有所不同),或者某些环境差异(例如环境变量、shell 别名或 shell 函数)。

如果您可以在命令行上重现差异,请检查参数并修复它们。
如果不能,请which mail在失败脚本中的邮件发送行之前插入一行,以便查看它是否正在运行mail二进制文件、shell 别名或 shell 函数。
如果失败的脚本正在运行预期的二进制文件,则它可能是它以适合 RHEL 但不适合 CentOS 的方式设置的环境变量。

换句话说:调查可能的差异,直到找到罪魁祸首。

相关内容