Как отправить html письмо с помощью команды bash «sendmail»? - PullRequest
21 голосов
/ 26 августа 2009

У кого-нибудь есть демоверсия?

Говорят, что Sendmail не масштабируется, но он бесплатен, поэтому я решил сначала использовать его:)

Ответы [ 8 ]

39 голосов
/ 08 апреля 2013

Я не смог заставить работать ни одно из опубликованных решений, но, наконец, нашел это в другом месте, и он прекрасно работает:

(
echo "From: ${from}";
echo "To: ${to}";
echo "Subject: ${subject}";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "${message}";
) | sendmail -t
17 голосов
/ 26 августа 2009

Если я вас правильно понял, вы хотите отправлять почту в формате HTML с помощью команды linux sendmail. Этот код работает на Unix. Пожалуйста, попробуйте.

echo "From: me@xyz.com
To: them@xyz.com
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary='PAA08673.1018277622/server.xyz.com'
Subject: Test HTML e-mail.

This is a MIME-encapsulated message

--PAA08673.1018277622/server.xyz.com
Content-Type: text/html

<html> 
<head>
<title>HTML E-mail</title>
</head>
<body>
<a href='http://www.google.com'>Click Here</a>
</body>
</html>
--PAA08673.1018277622/server.xyz.com
" | sendmail -t

Подробную информацию о конфигурации sendmail см. По этой ссылке . Надеюсь, это поможет.

4 голосов
/ 18 сентября 2014

Я понимаю, что вы просили sendmail, но почему бы не использовать mail по умолчанию? Он может легко отправлять HTML письма.

Работает на: RHEL 5.10 / 6.x & CentOS 5.8

Пример:

cat ~/campaigns/release-status.html | mail -s "$(echo -e "Release Status [Green]\nContent-Type: text/html")" to.address@company.com -v

CodeShare: http://www.codeshare.io/8udx5

4 голосов
/ 26 августа 2009

Эта страница должна помочь - http://www.zedwood.com/article/103/bash-send-mail-with-an-attachment

Включает скрипт для отправки электронной почты с вложением MIME, т.е. с HTML-страницей и изображениями.

3 голосов
/ 08 марта 2018

Найдено решение в http://senthilkl.blogspot.lu/2012/11/how-to-send-html-emails-using-sendemail.html

sendEmail -f "oracle@server" -t "name@domain.com" -u "Alert: Backup complete" -o message-content-type=html -o message-file=$LOG_FILE  -a $LOG_FILE_ATTACH 
3 голосов
/ 18 ноября 2014

Для отслеживания предыдущего ответа используйте mail :

Часто выходные данные html интерпретируются почтовым клиентом, который не может форматировать объекты с использованием шрифта фиксированной ширины. Таким образом, ваше хорошо отформатированное выравнивание ascii испортилось. Чтобы отправить старомодную фиксированную ширину так, как намеревался Бог, попробуйте это:

<code>{ echo -e "<pre>"
echo "Descriptive text here."
shell_command_1_here
another_shell_command
cat <<EOF

This is the ending text.

EOF } | mail -s "$ (echo -e 'Ваша тема. \ nContent-Type: text / html')" to.address@company.com

Вам не обязательно нужен «Описательный текст здесь». строки, но я обнаружил, что иногда первая строка, в зависимости от ее содержимого, может заставить почтовую программу интерпретировать остальную часть файла так, как вы этого не предполагали. Сначала попробуйте выполнить сценарий с простым описательным текстом, прежде чем настраивать вывод так, как вам нужно.

2 голосов
/ 18 августа 2017

- вариант?

Cf. Страница man:

-a file
          Attach the given file to the message.

Результат:

Content-Type: text/html: No such file or directory
0 голосов
/ 04 декабря 2015

Проще использовать, опция -a:

cat ~/campaigns/release-status.html | mail -s "Release Status [Green]" -a "Content-Type: text/html" to.address@company.com
...