シンプルなテキストファイルをメールの添付ファイルとして送信したい。メールが配信されるときに添付ファイルが欠落している代わりに、添付ファイルの内容がメール本文に表示されます。それを修正するための提案が必要です。
これが私の入力です:
bash-4.1$ cat test.txt
HelloWorld !
bash-4.1$ uuencode test.txt test_attachment.txt|mailx -s 'testing' [email protected]
これは電子メールの出力です:
begin 664 test_attachment.txt
/2&5L;&]7;W)L9"`A(`H*
`
end
uuendcode ... | mailx ...
コマンドが行うことになっています。
Uuencodeが動作するように設計された世界では、MIMEがまだ存在しないため、添付ファイルなどはありません。 uuencodeされたものを含むメッセージを受信する人は、次のように表示するはずです。
From: Alice <[email protected]>
To: Bob <[email protected]>
Subject: Those files you requested
Here you go:
begin 644 something.tar.Z
M'YV04HH$(=*D"("#"!,J7,BPH<.'$"-*1`BC(@P;%0%8C'$#H\:*'#U:'%EQ
M1@T`,63<F!&CQHP;,&3,T!@#QLJ9(&!,W,FSI\^?`.K,H1-&#@@0`-*02?.&
M#E"&2IDZ?4JUJM6K6+-JE9CE31T08<;0J1.	L\(,K@H2,G+)TR9$#009-F
MS@\%6_/JW<NWK]^_@`,+'DRXL.'#B!,K7LRXL>/'D"-+GDRYLN7+F#-KWLRY
ML^?/H$.+'DVZM.G3J%.K7LVZM>O7L&/+GDV[MNW;N'/KWLV[M^_?P(,+'TZ\
JN/'CR),K7\Z\N?/GT*-+GTZ]NO7KV+-KW\Z]N_?OX,.+'T^^O/GSZ',#
`
end
--
Alice
受信者は、begin
からend
までの行がuuencodeされたファイルであることを認識し、それらの行(またはメッセージ全体)をuudecode
にパイプして、現在のディレクトリにある出力ファイル。
これはMIME添付ファイルのデコードによく似ていますが、ユーザーの頭の中で大きな部分が発生します。
最近のメールリーダーの中には、uuencodeされたコンテンツを自動的に認識し、単一のユーザーインターフェイスを使用して、uuencodeされたファイルとMIME添付ファイルの両方を表示するものがあります。それが実際に送信されたもの、つまりプレーンテキスト(非MIME)メッセージを誤って表すので、私は古典的なUNIXメールリーダーがそれをすることを期待しません。
mailx
ユーティリティの一部の実装では、添付ファイルを送信できません。その他(Linuxなど)には、ファイル名を値として取る-A
フラグがあります。
したがって、Linuxを使用している場合は、mailx
を使用する前に、uuencodeされたデータをファイルに書き込む必要があります。
$ uuencode test.txt test_attachment.txt >file.uue
$ mailx -A file.uue -s "testing" [email protected] </dev/null
これにより、空の本文と[email protected]
からの添付ファイルを含むメールがfile.uue
に送信されます。
ほぼ2年後ですが、Linuxではuuencodeまたはメールが壊れているようです。または、おそらく正常に動作していますが、Outlookが壊れています。知るか?
uuencode a.gz a.gz | mail -s "linuxからのuuencodeのテスト" [email protected]
uuencode a.gz a.gz | mail -s "aixからのuuencodeのテスト" [email protected]
Linuxから送信すると、Outlookはインラインuuencodeコードを表示します。 AIXから送信すると、Outlookはそれを添付ファイルとして表示します。同じコマンド、同じメールリレー、異なるOS、異なる結果。ああ、多分それはsendmail(aix)対postfix(linux)ですか?とにかく、破損の場所について独自の結論を導きます。
ああ、本当の答えを出すために... mailx -a a.gz -s "subject" [email protected]