12

shell scriptLinux を使用して電子メールを送信するために書いています。電子メールには添付ファイルメッセージ本文Mailxが含まれている必要があります。

現在、添付ファイル付きのメールを送信しています:

output.txt | mail -s "Daily Monitoring" james@dell.com

メッセージ本文を追加したい。どうすればいいですか?

Linux Mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
4

6 に答える 6

26

通常の方法はuuencode、添付ファイルとecho本体に使用することです。

(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' user@domain.com

Solaris および AIX の場合、次のechoステートメントを最初に配置する必要がある場合があります。

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' user@domain.com
于 2011-11-29T17:34:56.180 に答える
4

最善の方法は mpack を使用することです!

mpack -s "件名" -d "./body.txt" "././image.png" メールアドレス

mpack - 件名 - 本文 - 添付ファイル - メールアドレス

于 2015-03-05T11:28:17.067 に答える
1

これを試してみてください:

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com
于 2016-10-05T09:14:34.767 に答える
1

Johnsyweb の答えはうまくいきませんでしたが、Mutt ではうまくいきます。

echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com
于 2015-02-06T20:32:03.427 に答える
1

RHEL Linux では、メッセージが添付ファイルとしてではなく、メールの本文に表示されるのに問題がありました。od -cx を使用すると、メールの本文にいくつかの /r が含まれていることがわかりました。/r を削除するために perl スクリプトを使用したところ、メッセージは電子メールの本文に正しく挿入されました。

mailx -s "subject text" me@yahoo.com < 'body.txt'

テキスト ファイル body.txt には char \r が含まれていたため、perl を使用して \r を削除しました。

cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'

これはsuccess.plです

    while (<STDIN>) {
        my $currLine = $_;
        s?\r??g;
        print
    }
;
于 2017-01-20T15:35:40.543 に答える
0

これを試すことができます:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com
于 2016-05-18T00:30:26.533 に答える