Назад | Перейти на главную страницу

Как отправить вложение с помощью sendmail?

Как отправить вложение с помощью sendmail? Я могу отправить электронное письмо со следующим:

sendmail johndoe@example.com < email.txt 

Не могу понять, как отправить с вложением, пробовал:

sendmail johndoe@example.com < email.txt -a foo.pdf

Ты можешь использовать uuencode для кодирования вложения.
Наиболее почтовые клиенты распознают вложения с кодом uuencoded.

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

#!/bin/sh
(cat email.txt; uuencode foo.pdf foo.pdf)|/usr/sbin/sendmail -i -- johndow@example.com 

Это не как sendmail работает. Он просто занимается транспортировкой почты и уже ожидает правильно закодированную почту.

Вы можете выполнить эту кодировку самостоятельно или просто использовать mail/mailx/mutt вместо этого передать подходящую почту sendmail для доставки.

Вы действительно не должны вызывать sendmail напрямую, но используйте mail или mailx который также поможет вам настроить правильные заголовки и тому подобное. Современная версия поддерживает добавление вложений с -a вариант.

Альтернативой является MIME (base645) кодирование вашего вложения и включение его с правильными заголовками в тело исходного текста электронного письма и отправка его в sendmail.