Как отправить вложение с помощью 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.