0
1. (cat mytest.html;uuencode "myfile.xls" "myfile.xls")|mail -s "$("This is Subject\nContent-Type: text/html")" test@yahoo.com

2. (uuencode "myfile.xls" "myfile.xls")|mail -s "$("This is Subject\nContent-Type: text/html")" test@yahoo.com < mytest.html

上記の2つの方法を使用している場合、出力はhtml形式で表示されます。しかし、添付ファイルがありませんか?(mytest.htmlにhtml部分が含まれている場合)

注:アタッチメントの代わりに散在するキャラクターが表示されます。

ここから出してください

4

1 に答える 1

1

uuencodeは、メールやニュース記事に含めるためにバイナリ データを ASCII テキストとしてエンコードするための古い標準でしたが、時代遅れであり、10 年以上にわたって一般的に使用されていません。特に HTML メールでは、それを処理する方法をまだ知っている MUA が残っていない可能性があります。

また、コマンドの引数にContent-Typeヘッダーを指定するというあなたのトリックは、非常に醜いハックです。私はそれがまったく機能することに驚いています!いずれにせよ、少なくとも 1 つの他の必要なヘッダーを含めることができません: .-smailMIME-Version: 1.0

1 つの部分が HTML ドキュメントで、もう 1 つの部分が添付ファイル (バイナリ データの場合は base64 エンコード) であるMIMEマルチパート メッセージを作成する必要があります。

MIME ではマルチパート境界を選択する必要があるため、その境界を使用して複数のパートを区切るようにメールの本文をフォーマットし、マルチパート サブパートごとにヘッダーを生成し (各パートの独自の部分とその他の部分を含むContent-Type) Content-Transfer-EncodingContent-Disposition各部分を適切にエンコードします。 、コマンドを使用して手動で MIME メッセージを作成するよりも、MIME メッセージを作成するツールキットを使用する方がはるかに優れていますmail。シェルで作業している場合は、makemimeを試すこともできますが、手動で行うのと同じくらい見苦しいので、Perl の MIME ツールなどを使用することをお勧めします。

于 2012-09-10T12:48:30.390 に答える