web-dev-qa-db-ja.com

電子メールの添付ファイルをエンコードするためのbashスクリプトのuuencodeより優れたオプションは何ですか?

私は 私の元の投稿 を参照しています。ここでは、$2 $3など、および最終的には${@:2}に関連する引数の配置について質問していました。電子メールの添付ファイルをエンコードするより良い方法があることが言及されました。

注:uname -orを使用して2.6.32-400.26.3.el5uek GNU/Linuxを計算しました。

このコマンドをbashスクリプト内で使用して、ファイルをメールに添付し、他のいくつかのスクリプトにも含めました。ただし、一部のマシンではuuencodeさえサポートしていないため、電子メールにファイルを添付するには、uuencodeよりも優れたオプションがありますか?

4
Emile

Mpackを使用して添付ファイルをMIMEとして送信することを好みます

のように:

mpack -s "message" file [email protected]

名前

mpack-ファイルをMIME形式でパックします

mpack [-s subject] [-d descriptionfile] [-m maxsize] [-c content-type]ファイルアドレス... mpack [-s subject] [-d descriptionfile] [-m maxsize] [-c content-type ] -o outputfile file mpack [-s subject] [-d descriptionfile] [-m maxsize] [-c content-type] -nニュースグループファイル説明

Mpackプログラムは、指定されたファイルを1つ以上のMIMEメッセージにエンコードします。結果のメッセージは、1人以上の受信者にメールで送信されるか、名前付きファイルまたはファイルセットに書き込まれるか、ニュースグループセットに投稿されます。

2
Rui F Ribeiro

あなたは私が以下がTEXTまたはバイナリのどちらのファイルでもうまく機能することを知っていることを知っています:

 mailx -s SUBJECT -a FILE1 -a FILE2 ... USERNAME

それは基本的にMIMEエンコーディングを自動的に行い、そしてM $ Outlookもそのようなメッセージで正しいことをします。

1
mdpc

uuencodeがない場合、このPerlハックはほとんど同じことを行います。

クレジットは Perl Monksサイト に送られます

Perl -ple"BEGIN{ $/=\45} $_ = pack 'u', $_" file
0
steve

7zまたはZipまたはtar.wzなどを使用して、ファイルの圧縮リストを取得できます。

次に、ファイルの圧縮リストを16進数に変換できます。 od hdまたはxxdを使用:

$ xxd -p compressedfile.7z > ToBeMailedFile

メールに添付されたファイルを送信します。

ファイルを元に戻す:

$ xxd -p -r ToBeMailedFile > compressedfile.7z

ファイルをファイルのリストに展開します。

HEXは許可されているすべてのWeb制限を通過するため、ファイルは通過します。
ファイルのリストは送信前に圧縮されるため、サイズが大きくなります。
圧縮ファイルは暗号化することもできます。いくつかの異なるツールを使用してデータを処理できます。 HEXからBINへの変換のみxxdが必要です。つまり、ツールの自由。

0
Isaac