mail -s "subject" xxxxx@gmail.com <test.html
работает, но только для обычной электронной почты.
Как правильно отправлять электронную почту в формате HTML с помощью команды Linux mail
?
источник
mail -s "subject" xxxxx@gmail.com <test.html
работает, но только для обычной электронной почты.
Как правильно отправлять электронную почту в формате HTML с помощью команды Linux mail
?
Есть много разных версий mail
вокруг. Когда вы выходите за рамки mail -s subject to1@address1 to2@address2 <body
(для отправки, это все гарантии POSIX - и даже -s
не существовали в старые времена ), они, как правило, имеют различные параметры командной строки. Добавление дополнительного заголовка не всегда легко.
С некоторыми mailx
реализациями, например, из mailutils
Ubuntu или Debianbsd-mailx
, это легко, потому что есть опция для этого.
mailx -a 'Content-Type: text/html' -s "Subject" to@address <test.html
С Семейной реликвией mailx
нет удобного пути. Одна из возможностей вставить произвольные заголовки - установить editheaders=1
и использовать внешний редактор (который может быть скриптом).
## Prepare a temporary script that will serve as an editor.
## This script will be passed to ed.
temp_script=$(mktemp)
cat <<'EOF' >>"$temp_script"
1a
Content-Type: text/html
.
$r test.html
w
q
EOF
## Call mailx, and tell it to invoke the editor script
EDITOR="ed -s $temp_script" heirloom-mailx -S editheaders=1 -s "Subject" to@address <<EOF
~e
.
EOF
rm -f "$temp_script"
С обычным POSIXmailx
я не знаю, как добраться до заголовков.
Если вы собираетесь использовать любой mail
или mailx
, имейте в виду, что
mail
и mailx
.mail
и mailx
обрабатывает строки , начинающиеся с ~
как команды. Если вы перенаправляете текст mail
, вам нужно сделать так, чтобы этот текст не содержал строк, начинающихся с ~
.Если вы все равно собираетесь установить программное обеспечение, вы можете установить нечто более предсказуемое, чем mail
/ Mail
/ mailx
. Например, дурак . С Mutt вы можете предоставить большинству заголовков на входе -H
опцию, но это не такContent-Type
, что необходимо установить с помощью опции Mutt.
mutt -e 'set content_type=text/html' -s 'hello' 'to@address' <test.html
Или вы можете вызвать sendmail
напрямую. Существует несколько версий sendmail
, но все они поддерживают sendmail -t
отправку почты самым простым способом, считывая список получателей из почты. (Я думаю, что они не все поддерживают Bcc:
.) В большинстве систем, sendmail
не в обычном $PATH
, а в /usr/sbin
или /usr/lib
.
cat <<'EOF' - test.html | /usr/sbin/sendmail -t
To: to@address
Subject: hello
Content-Type: text/html
EOF
источник
mail
.С фамильной фамилией mailx, удобный способ
Спасибо, Чувак
протестировал на Fedora 17, и работал
источник
Вы должны будете добавить
Content-Type
заголовок к своей электронной почте, чтобы это произошло.будет работать
источник
mailx
? Это может иметь вариант. Если это не сработает. Если это не сработает, вы можете подумать об использовании mutt, хотя я не знаю, что это за командная строка.С помощью heirloom-mailx вы можете изменить программу sendmail на свой скрипт подключения, заменить там заголовки и затем использовать sendmail.
Скрипт, который я использую (
~/bin/sendmail-mailx-hook
):Этот скрипт изменяет значения в заголовке письма следующим образом:
Content-Type:
вtext/html; charset=utf-8
Content-Transfer-Encoding:
чтобы8bit
(не уверен , если это действительно необходимо).Чтобы отправить HTML письмо по электронной почте:
Этот метод более эффективен, чем предложенный @Gilles, потому что он не создает временные файлы и просто исправляет поток на лету.
источник
Я использовал приведенные ниже сценарии
источник
Для меня мне нужно было указать переменную, такую как SMTP-сервер, поэтому команда mail работала следующим образом. Я искал во многих сообщениях, и я нашел свойство ниже, чтобы преобразовать тело в текст / HTML. Теперь письмо, которое я получаю, находится в формате HTML.
Версия для Unix: Red Hat Enterprise Linux Server, версия 6.6 (Сантьяго)
Первый. Создайте в скрипте любую необходимую информацию (testSql.sh)
Во-вторых. Передайте этот скрипт в почтовую команду
Делая это, я получаю информацию, как показано ниже в электронном письме:
Value1 и Value2 согласно тегам HTML, выполненным в testSql.sh
источник
источник