10

またはのようなLinuxコマンドを使用してメールの本文に画像を埋め込む方法はありますmuttsendmail

これを使った

mutt -e 'set content_type="text/image"' \
   u.mohan@6dtech.co.in -s "TEST" \
    -i image001.jpg < data.txt

しかし、それは機能していません。

4

7 に答える 7

4

muttリンクされた画像ではなく、画像が埋め込まれた HTML メッセージで送信するシェル スクリプトを作成しました。

いくつかの手順:

  1. <img>元の HTML のタグでリンクされたすべての画像ファイルをダウンロードし、
  2. srcURL を ,に変更して、HTML ファイルを準備しますcid
  3. でマルチパート電子メールを準備する(neo)mutt
  4. この電子メールの一部のコンテンツ説明タグを修正してください
  5. で送る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 メールに関する問題の報告を歓迎します。

于 2019-02-05T14:32:39.823 に答える
0

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 では問題なく表示されます。

于 2013-05-03T23:42:29.453 に答える
0

基本的なメールコマンドでも可能です

次のような mime HTML メールを作成します。

メールに画像を埋め込む方法

次に、ヘッダー (最初の境界の前のすべての行) を取得し、その入力からそれらを削除し、メールの後に -a コマンドを使用して個別に追加します。

https://stackoverflow.com/a/12262421/2244213 または シェルスクリプトを使用して HTML メールを送信する

于 2014-01-09T16:37:55.530 に答える
0

コマンドラインの-iを-aに変更することで、イメージを添付できます。これにより、画像自体は埋め込まれませんが、含まれます。埋め込みたい場合は、送信するメールがコンテンツ タイプで、添付画像を表示するタグが含まれている必要があります。text/htmlimg

HTML メールに画像添付ファイルを正しく埋め込む方法については、この SO ページを参照してください。

HTML メールへの添付画像の埋め込み

于 2013-02-02T00:32:11.000 に答える