web-dev-qa-db-ja.com

Linux Mailxを使用して単純なメッセージ本文と添付ファイルを送信する

Shell script Linuxを使用してメールを送信するにはMailx、メールに添付ファイルメッセージ本文を含める必要があります。

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

output.txt | mail -s "Daily Monitoring" [email protected]

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

Linux Mailx:

mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
10
Oh Chin Boon

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

(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' [email protected]

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

(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' [email protected]
24
Johnsyweb

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

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

mpack-件名-本文-添付ファイル-mailadress

3
Vautschi

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

mailx -s "subject text" [email protected] < 'body.txt'

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

cat body.txt | Perl success.pl > body2.txt
mailx -s "subject text" [email protected] < 'body2.txt'

これはsuccess.plです

    while (<STDIN>) {
        my $currLine = $_;
        s?\r??g;
        print
    }
;
1
Loretta

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

(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' [email protected]
1
Vishy

Johnsywebの答えは私にはうまくいきませんでしたが、Muttでうまくいきました:

echo "Message body" | mutt -s "Message subject" -a myfile.txt [email protected]
0
Slothario

あなたはこれを試すことができます:

(cat ./body.txt)|mailx -s "subject text" -a "attchement file" [email protected]
0
Ray S