Подтвердить что ты не робот

Как отправить html-адрес электронной почты с помощью команды bash "sendmail"?

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

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

4b9b3361

Ответ 1

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

(
echo "From: ${from}";
echo "To: ${to}";
echo "Subject: ${subject}";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "${message}";
) | sendmail -t

Ответ 2

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

echo "From: [email protected]
To: [email protected]
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

Я понимаю, что вы просили 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")" [email protected] -v

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

Ответ 5

Чтобы следить за предыдущим ответом, используя mail:

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

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

This is the ending text.
</pre><br>
</div>
EOF
} | mail -s "$(echo -e 'Your subject.\nContent-Type: text/html')" [email protected]

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

Ответ 6

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

cat ~/campaigns/release-status.html | mail -s "Release Status [Green]" -a "Content-Type: text/html" [email protected]

Ответ 7

-a вариант?

Cf. справочная страница:

-a file
          Attach the given file to the message.

Результат:

Content-Type: text/html: No such file or directory