Невозможно отправить электронное письмо с HTML-содержимым и вложением

Невозможно отправить электронное письмо с HTML-содержимым и вложением

Я не могу отправить электронное письмо с телом html с вложением. Команда1:

echo "<html><b>Hello</b></html>" | mail -s "Subject #1" -a "content-type: text/html" [email protected]

Команда2:

echo "<html><b>Hello</b></html>" | mail -s "Subject #2" -a "content-type: text/html" [email protected] -A "/Users/asdf/Downloads/00000001.pdf" 

Command1 работает отлично. Я вижу письмо с телом html.

Во 2-й команде тело не в формате html.

Пожалуйста, дайте мне знать, если я что-то упустил.

решение1

Я не знаю, какой почтовый инструмент вы используете (и какую версию), но если это GNU mailutils, вы, вероятно, столкнетесь с этой ошибкой:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22 Обходной путь — использовать параметр командной строки -M (или --mime) для составления сообщений MIME.

решение2

Вложения всегда отправляются с использованием составных сообщений MIME, поэтому корневой тип содержимого описываетмногокомпонентная структура сама по себе, и каждая часть имеетсвой собственныйЗаголовок Content-Type внутри. Вы должны увидеть, Content-Type: multipart/relatedесли посмотрите на источник такого сообщения.

Насколько мне известно, ни mailutils, ни mailx не имеют возможности изменять Content-Type части тела письма по отдельности.

решение3

В текущей версии GNU Mailutils это можно сделать mailxследующим образом:

echo "<html><b>Hello</b></html>" | mailx --content-type="application/pdf" --attach=/Users/asdf/Downloads/00000001.pdf --content-type="text/html" --subject="Subject #2" [email protected]

Обратите внимание, что --content-typeэто позиционный вариант, относящийся квсеследующие вложения (если их несколько) и последнее указанное значение затем также используются для тела сообщения (вот почему оно снова изменяется в конце).

Связанный контент