1

unix から mutt クライアント経由でメールを送信する必要があります。HTML本文のメールを送信してみました:

mutt -e "my_hdr Content-Type: text/html" $userEmail -s "ワークフロー - ステージでのクエリ実行: $STGUPPER" < $htmlResultFile

動作します。

HTML 添付ファイル付きのメールを送信しようとしました:

mutt -e "my_hdr Content-Type: text/html" -a $htmlResultFile -s "attachment" $userEmail

動作します!

しかし、html 本文と html 添付ファイルの両方を含むメールを送信しようとすると、送信できません..

mutt -e "set Content-Type: text/html" $userEmail -a $htmlResultFile -s "attachment" < $htmlResultFile

html は添付ファイルとして取得しますが、本文はプレーン テキストとして取得します。

4

2 に答える 2

2

自分で体を作る必要があると思います。混合ボディの content_type はmultipart/alternative

この質問は興味深いと思いました。これが私の見解です:

#!/bin/sh
# using mutt, send a mixed multipart text and html message:

usage() {
    echo "error: $1"
    echo "usage: $(basename $0) -t textfile -h htmlfile -s subject -r recipient"
    exit 1
}

textfile=""
htmlfile=""
subject=""
recipient=""

while getopts "t:h:s:r:" opt; do
    case $opt in
        t) textfile="$OPTARG" ;;
        h) htmlfile="$OPTARG" ;;
        s) subject="$OPTARG" ;;
        r) recipient="$OPTARG" ;;
        ?) usage "invalid option: -$OPTARG" ;;
    esac
done
shift $((OPTIND-1))

[ -z "$textfile" ] && usage "no textfile specified"
[ -z "$htmlfile" ] && usage "no htmlfile specified"
[ -z "$recipient" ] && usage "no recipient specified"
[ ! -f "$textfile" ] && usage "no such file: $textfile"
[ ! -f "$htmlfile" ] && usage "no such file: $htmlfile"

boundary=$(openssl rand -hex 24)
content_type="Content-type: multipart/alternative; boundary=$boundary"

##
body=$(cat - << END

--$boundary
Content-Type: text/plain; charset=ISO-8859-1

$(cat "$textfile")

--$boundary
Content-Type: text/html; charset=ISO-8859-1

$(cat "$htmlfile")

--$boundary
END
)
##

echo "$body" | mutt -e "myhdr $content_type" -s "$subject" "$recipient"
于 2013-07-02T18:38:33.853 に答える
0

mutt でプレーンテキストと HTML を組み合わせて送信することができませんでした。そのため、手動で電子メールを作成し、 にパイプすることになりましたsendmail -t

例: https://github.com/kaihendry/sg-hackandtell/blob/master/list/maillist

これにより、HTML メールを送信するよりも良い結果が得られるはずです。

于 2014-02-07T06:55:47.260 に答える