サーバーを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
。これは、電子メールを送信する必要があり、電子メール送信ソフトウェアが電子メールを送信する方法を見つけることができない場合の標準的な反応です。
したがって、このスクリプトが機能せず、他のスクリプトが機能しない理由を理解する必要があります。
最初に試すことは、コマンドラインから成功スクリプトと失敗スクリプトの両方に対してmailコマンドを実行することです。これにより、無効なコマンドラインオプション(これらのオプションはディストリビューションによって異なる可能性があります)か、一部の環境の違い(環境変数、シェルエイリアス、またはシェル関数)であるかを確認できます。
コマンドラインで違いを再現できる場合は、パラメータを確認して修正してください。
そうでない場合は、失敗したスクリプトのメーリング行の前に行を挿入して、バイナリ、シェル別名、またはシェル関数をwhich mail
実行していることを確認してください。失敗したスクリプトが予想バイナリを実行している場合は、RHELには適していますがCentOSには適していない方法で環境変数を設定している可能性があります。mail
つまり、犯人が見つかるまで可能な違いを調べてください。