2012-11-29 4 views
4

Я использую собачонку для некоторых времени, чтобы послать простые текстовые письма с приложением в формате PDF с помощью:с помощью собачонку отправить HTML электронной почты с вложением

собачонка -s «Тема» -a файл file.pdf < mybody.txt

и HTML письмо без вложения с помощью:

собачонки -e "my_hdr Content-Type: текст/HTML" -s "Тема" < mybody.html

, но теперь я хочу отправить HTML электронной почты с вложением в формате PDF и:

собачонка -e "my_hdr Content-Type: текст/html" -s "Тема" -a файл file.pdf < mybody.html

не работает.

Как html, так и закодированный pdf вместе со своими заголовками отображаются как обычный текст в теле письма.

Кто-нибудь знает, как это сделать?

Приветствия

Gary

ответ

5

Вы не можете это сделать. Mutt не предназначался для отправки сообщений программно, он должен быть интерактивным почтовым клиентом; флаги командной строки для отправки сообщений присутствуют только в качестве младшего надстройки, так много чего невозможно.

Команда my_hdr не должна использоваться для установки заголовков MIME, таких как Content-Type. Это действительно не работает, даже если вы не включаете вложение. Сообщение от вашей второй команды будет иметь два заголовка Content-Type; первый, который генерирует mutt, который сообщает, что сообщение text/plain, и второе, которое вы указали. Просто случается, что клиент, который вы используете для проверки сообщения, смотрит на ваш заголовок. Для меня mutt отобразит это сообщение как HTML, но thunderbird отобразит документ без рендера.

При попытке комбинировать отправку HTML и вложения происходит то же самое. Есть несколько заголовков Content-Type. Первый из слова mutt говорит, что сообщение multipart/mixed, второе сообщение, что это text/html. В моем тестировании mutt снова будет уважать второй заголовок и поэтому попытаться отобразить все сообщение, включая вложение, как HTML. Thunderbird снова награждает первый заголовок Content-Type, и поэтому находит две части: HTML и вложение, но в HTML-части нет заголовка Content-Type, который указывает, что он является HTML, поэтому он не отображается как таковой, а вместо него источник показан.

Вы могли бы получить несколько близко, посылая как HTML и PDF в качестве вложений, с пустым телом:

mutt -s "Subject" -a mybody.html -a file.pdf -- [email protected] < /dev/null 

Но вы, вероятно, будет лучше использовать инструмент, который был фактически разработан, чтобы послать больше сложные сообщения программно.

7

Калеб Роджер Дэвис

Mutt Версия: 1.5.21

С некоторыми исследованиями и помощь от напарницы, я был в состоянии получить эту работу (отправить HTML-файл в качестве тела & PDF приложение).

У меня есть .html-файл & .pdf как отдельные файлы. Я делаю замену ключевых слов в файле .html (заменяя имя клиента и т. Д.) Перед отправкой.

Вот скрипт bash, который работает.

Я думаю, что я мог бы заставить это работать с sendmail, если кто-то заинтересован.

#!/bin/bash 
START=`date` 

# -------------------------------------------------------------------------------------- 
# can be comma delimited list of email addresses 
[email protected] 
[email protected] 

subject="Monthly PDF report" 
attachments="../src/test/resources/my.pdf ../src/test/resources/my2.pdf" 

html_file="../src/main/resources/email_template.html" 

# -------------------------------------------------------------------------------------- 
# send html with pdf attachment 
# You can send additional attachments, the attachment list can be terminated with the "--" 
mutt -e "set content_type=text/html" -s "$subject" $TO -a $attachments -- < $html_file 

END=`date` 
echo "START=$START" 
echo "END=$END" 
+0

Только для записи решение @ MoabTek работало для меня. Я использую mutt 1.5.20. – gacanepa

Смежные вопросы