В настоящее время я использую следующую команду для отправки электронных писем с моего сервера Ubuntu, которую я адаптировал из ответа на этот вопрос: https://unix.stackexchange.com/a/90881/166614
printf "subject: the subject\n\nMessage body"| (cat - && uuencode "$attach" $(basename "$attach")) | ssmtp
Моя единственная проблема заключается в том, что приведенная выше команда создает два вложения, состоящие из файла, указанного переменной $ attach, и текстового файла, содержащего то, что предполагается, что это тело сообщения с кажущимся случайным числом для имени. Если я удалю команду (cat - && uuencode "$ attach" $ (basename "$ attach"))
, письмо будет иметь тело как и должно быть, но (очевидно) без вложения. И наоборот, если я удалю тело, вложения текстового файла не будет.
Кто-нибудь знает, как я могу отправить электронное письмо через SSMTP и с телом, и с вложением?
В конце концов я решил использовать mpack
для выполнения этой задачи. Хотя это не дает точного ответа на поставленный мною вопрос, я думаю, что mpack
предоставляет простой способ отправки электронных писем без установки почтовых клиентов с функциями, которые могут вам не понадобиться.
Тем не менее, если кто-нибудь могут ответить на точный вопрос, они могут его опубликовать.
Это команда, которую я сейчас использую для отправки электронного письма из командной строки с текстом и вложением:
attachment=/location/of/attachment
printf "Body text here." | mpack -a -s "Subject here" -d /dev/stdin -m 0 -c $(file -b --mime-type $attachment) "$attachment" <email address>