Я видел это сделано:
mail -a "Content-type: text/html;" -s Test address@example.com < mail_html.html
Я должен был упомянуть, я проверил это на Ubuntu Server 10.04_x64 с Gnu Mail Utils -> Postfix
В настоящее время я отправляю письмо от команды Linux следующим образом:
echo "Here is the link: file:///S:/some_doc.html" | mail -s "Here is some_doc.html" fred@example.com
В некоторых почтовых клиентах «file: /// S: /some_doc.html» в теле сообщения становится ссылкой, по которой пользователь может щелкнуть, но в других клиентах он представлен в виде простого текста, требующего от пользователя скопировать и вставить строку в веб-браузер. Как мне изменить команду, чтобы сделать сообщение HTML, чтобы почтовый клиент знал, как обрабатывать ссылку?
Это получает ссылку на сообщение, но все равно обрабатывается как текст, а не HTML:
echo "Here is the link to: <a href='file:///S:/some_doc.html'>some_doc.html</a>" | mail -s "Here is some_doc.html" fred@example.com
Я видел это сделано:
mail -a "Content-type: text/html;" -s Test address@example.com < mail_html.html
Я должен был упомянуть, я проверил это на Ubuntu Server 10.04_x64 с Gnu Mail Utils -> Postfix
Сообщение:
Самый лучший способ для создания MIME Content-Type: multipart/alternative
сообщения с text/plain
и text/html
частями.
Для ленивых, Content-Type: text/html
(с HTML прямо в теле сообщения) подойдет.
... но помните, что есть почтовые клиенты, которые не могут отображать HTML.
Что бы вы ни выбрали, добавьтеcharset=utf-8
(как в Content-Type: text/html; charset=utf-8
) в заголовок типа. (Любая не-Unicode кодировка (кроме, возможно, us-ascii
и iso-8859-1
) является злом.)
Посылка:
Натаниэль предложил mail -a "Content-Type: text/html"
, но это работает только с GNU Mailutils.
Более надежный способ - передать сообщение sendmail
, но вам придется создавать все заголовки самостоятельно.
rcpt=joe@example.com echo -e "From: <$USER>\nTo: <$rcpt>\nDate: $(date "+%a, %d %b %Y %H:%M:%S %z")\nContent-Type: text/html; charset=utf-8\n\n<!DOCTYPE html>\n<p>Here is the link to: <a href=\"file:///S:/some_doc.html\">some_doc.html</a>" | sendmail -i "$rcpt"