またはのようなLinuxコマンドを使用してメールの本文に画像を埋め込む方法はありますmutt
かsendmail
?
これを使った
mutt -e 'set content_type="text/image"' \
u.mohan@6dtech.co.in -s "TEST" \
-i image001.jpg < data.txt
しかし、それは機能していません。
mutt
リンクされた画像ではなく、画像が埋め込まれた HTML メッセージで送信するシェル スクリプトを作成しました。
いくつかの手順:
<img>
元の HTML のタグでリンクされたすべての画像ファイルをダウンロードし、src
URL を ,に変更して、HTML ファイルを準備しますcid
。(neo)mutt
sendmail
HTML ファイル名を引数として受け取るメイン スクリプトを次に示します (チェックは実行されません。アルファ版ソフトウェアとは見なさないでください)。
#!/bin/bash
F=$(basename "$1")
DIR="/tmp/inlinizer-$$/"
mkdir -p $DIR/Img
grep "src=" "$1" | sed -e "s,.*src=\"\([^\"]*/\)*\([^\"/]*\)\".*,wget \1\2 -O $DIR/Img/\2," > $DIR/get_img.sh
bash $DIR/get_img.sh
sed -e 's,src="\([^"]*/\)*\([^"/]*\)",src="cid:\2@example.com",g' < "$1" > "$DIR/$F"
neomutt -e 'set smtp_url=""' -e 'set sendmail="mysendmail"' -e "set content_type=text/html" me@example.com -s "test" -a $DIR/Img/* < "$DIR/$F"
mysendmail
によって生成された電子メール ファイルを後処理するカスタム sendmail コマンド (上記) も必要mutt
です。
sed -e 's,Content-Disposition: attachment; filename="\([^"]*\)",Content-Disposition: inline; name="\1"\nContent-ID: <\1@example.com>,' < /dev/stdin | sed -e 's,Content-Type: multipart/mixed;,Content-Type: multipart/related;,' | sendmail $*
GMail と他のいくつかの Web メールでテストしました。メール クライアントまたは Web メールに関する問題の報告を歓迎します。
bash スクリプトを使用して電子メールの一部として画像が埋め込まれた電子メールを送信しようとしている人のために、このコードをつなぎ合わせました。
電子メールは次の行で始まります。
EMAILBODY="echo \"Alarm went off! "
EMAILATTACH=""
添付する各ファイルを定義するループ内:
EMAILATTACH=$EMAILATTACH" -a /home/xyz/"$ID"/"$Event"/"$Frame"-capture.jpg"
EMAILBODY=$EMAILBODY"<BR> <IMG Height=150 SRC=\"$Frame-capture.jpg\">"
ループの後、電子メールは次の行で完成します。
EMAILBODY=$EMAILBODY"\" | mutt -e \"set content_type=text/html\" -s \"House Alarm went off!\""
EMAILSTRING=$EMAILBODY$EMAILATTACH" -- user@server.net"
eval $EMAILSTRING
私の最後のハードルは、これを Android フォンで受信すると (他のブラウザでも同じかもしれません)、画像が表示されず、小さなボックスのみが表示されることです (添付ファイルをダウンロードした後でも)。ただし、Outlook では問題なく表示されます。
基本的なメールコマンドでも可能です
次のような mime HTML メールを作成します。
次に、ヘッダー (最初の境界の前のすべての行) を取得し、その入力からそれらを削除し、メールの後に -a コマンドを使用して個別に追加します。
https://stackoverflow.com/a/12262421/2244213 または シェルスクリプトを使用して HTML メールを送信する
コマンドラインの-iを-aに変更することで、イメージを添付できます。これにより、画像自体は埋め込まれませんが、含まれます。埋め込みたい場合は、送信するメールがコンテンツ タイプで、添付画像を表示するタグが含まれている必要があります。text/html
img
HTML メールに画像添付ファイルを正しく埋め込む方法については、この SO ページを参照してください。