2

私は現在mailxを使って自分のスクリプトからHTML形式のメールを送信しています。

cat body.html | /usr/bin/mailx -a "From: Me <me@domain>" -a "Content-type: text/html" -s "My subject" $RECIPIENTS

今度は添付ファイル(png画像)を追加したいのですが、その方法がわかりません。 私はmuttまたは何か他のものに移動する前にmailxを試してみたいです。 どうもありがとう


  • 見てここに - Dinesh
  • @Dineshそれはあまり良い答えではありません。 HTMLとuuencodeは正しい組み合わせではありません。 - tripleee

2 답변


1

あなたの要求が単純ならば、あなたは裸のSendmailを使うことができます。それは私が特にお勧めするものではありませんが、あなたは避けたかったのでmutt...

# Now that we actually concatenate two files (well, stdin and a file),
# we are no longer eligible for a Useless Use of Cat Award
( cat - body.html <<HERE
Subject: My subject
Mime-Version: 1.0
Content-type: multipart/related; boundary="foooobar"

--foooobar
Content-type: text/html

HERE

cat <<HERE

--foooobar
Content-type: image/png
Content-disposition: inline
Content-transfer-encoding: base64

HERE

base64 image.png

echo; echo '--foooobar--' ) | sendmail -oi $RECIPIENTS

私はこれのための単純で標準的な効用があったことを望みます、しかし残念なことに多くの、すべて多かれ少なかれ相互に互換性がなく、曖昧なものがあります。繰り返しますが、使用できる場合muttおそらくそれはあなたが望むことができる最も広くサポートされている標準的なツールです。


  • しかし、sendmailを使用すると(そしてこれは別の問題です)、メールは(gmail)受信者ボックス上のがらくたに入ります。 - user2683188
  • これはおそらくあなたのコンテンツの機能であり、送信に使用したプログラムの機能ではありません。 - tripleee

1

これを試して:

uuncode input_file2.jpg attachment2.jpg >>tempfile
cat tempfile | mailx -s "subject" <email>

Uuencodeはファイル(またはデフォルトでは標準入力)を読み取り、エンコードされたバージョンを標準出力に書き込みます。エンコードはASCII文字の印刷のみを使用し、ファイルのモードとuudecodeで使用するためのオペランド名を含みます。 nameが/ dev / stdoutの場合、結果は標準出力に書き込まれます。デフォルトでは標準のUUエンコーディングフォーマットが使用されます。オプション-mがコマンドラインで指定されている場合は、代わりにbase64エンコーディングが使用されます。


  • コードは評価されていますが、必ず付随する説明が必要です。これは長くする必要はありませんが、予想されます。 - peterh
  • コメントに記載されているコマンドは実行前に簡単に確認できます。ユーザーが既にmailxを使用していて、「cat」を認識しているため、これ以上説明する必要はありません。 uunicode、簡単に人員配置ができます - Ron
  • これはいいですか? - Ron

リンクされた質問


関連する質問

最近の質問