Отправка HTML с помощью mailx с postfix 2.6.6 и centOS 6.4

Отправка HTML с помощью mailx с postfix 2.6.6 и centOS 6.4

Я пытаюсь отправить HTML-письмо с нашего сервера CentOS пользователям. В долгосрочной перспективе я создам программу COBOL, которая будет запускать команду для отправки отчетов пользователю.

Вот несколько подробностей.

  • CentOS 6.4
  • MAU: Mailx
  • MTA: Постфикс 2.6.6
  • Postfix запускает ретрансляцию через сервер обмена.

Что касается команд, которые я пробовал запускать. Больше всего я видел сегодня следующее.

$ mailx -a 'Content-Type: text/html' -s "Command Line Test" [email protected] < ./bodytext.html

После запуска показанной команды я получаю сообщение об ошибке "Content-Type: text/html: Такого файла или каталога нет". Я почти уверен, что после определенного обновления они перестали разрешать -a как флаг для обозначения Content-Type.

Я также пробовал добавлять «Content-Type: text/html» в файл bodytext.html в качестве самой первой строки. Я просто не знаю, что мне делать, чтобы отправить HTML-письмо. Некоторые из найденных мной источников говорят, что mailx и postfix не могут правильно отправлять HTML-письма. Надеюсь, это не так, но если это так, то я хотел бы узнать, что вы думаете о других технологиях MAU и MTA?

решение1

Поскольку вы, по-видимому, имеете полный контроль над сгенерированным текстовым файлом, самым простым и, вероятно, наиболее портативным способом будет /usr/sbin/sendmailпрямое участие.

/usr/sbin/sendmail -t < complete-mail.txt

Это потребует от вас добавления всех важных заголовков самостоятельно ( From, To, Subject, и Content-Type). Файл должен выглядеть следующим образом:

From: Company <[email protected]>
To: Customer <[email protected]>
Subject: You are awesome
Content-Type: text/html

<html>…</html>

Postfix добавит отсутствующие, но необходимые заголовки, такие как Date.

решение2

Вы вообще читали инструкцию?mailx, особенно -aвариант?

-a file Прикрепите указанный файл к сообщению.

Отответ Жиля, так как CentOS использует эту версию mailx:

С реликвией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"

Postfix, безусловно, может отправлять HTML-письма.

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