Отправка простого корпуса сообщения + вложение файла с использованием Linux mailx [Duplicate
Вопрос
Этот вопрос уже имеет ответ здесь:
Я пишу shell script
Чтобы отправить электронное письмо с помощью Linux Mailx
, электронное письмо должно содержать файл вложения и тело сообщения.
В настоящее время отправляет электронное письмо с вложением:
output.txt | mail -s "Daily Monitoring" james@dell.com
Я хочу добавить тело сообщения. Как мне?
Linux mailx:
mail [-eIinv] [-a header] [-b addr] [-c addr] [-s subj] to-addr
Решение
Обычный способ - использовать uuencode
для вложений и echo
Для тела:
(uuencode output.txt output.txt; echo "Body of text") | mailx -s 'Subject' user@domain.com
Для Solaris и AIX вам может потребоваться положить echo
Заявление первым:
(echo "Body of text"; uuencode output.txt output.txt) | mailx -s 'Subject' user@domain.com
Другие советы
Лучший способ - использовать MPACK!
mpack -s "субъект" -d "./body.txt" "././image.png" MailAdress
mpack - субъект - тело - вложение - MailAdress
Попробуйте это, это работает для меня:
(echo "Hello XYX" ; uuencode /export/home/TOTAL_SI_COUNT_10042016.csv TOTAL_SI_COUNT_10042016.csv ) | mailx -s 'Script test' abc@xde.com
На Rhel Linux у меня были проблемы с получением моего сообщения в теле электронной почты, а не в качестве вложения. Используя OD -CX, я обнаружил, что тело моей электронной почты содержало несколько /r. Я использовал сценарий PERL, чтобы лишить /r, и сообщение было правильно вставлено в тело электронного письма.
mailx -s "subject text" me@yahoo.com < 'body.txt'
Текстный файл body.txt содержал char r, поэтому я использовал Perl для полосы r.
cat body.txt | perl success.pl > body2.txt
mailx -s "subject text" me@yahoo.com < 'body2.txt'
Это успех .pl
while (<STDIN>) {
my $currLine = $_;
s?\r??g;
print
}
;
Ответ Johnsyweb не сработал для меня, но он работает для меня с Mutt:
echo "Message body" | mutt -s "Message subject" -a myfile.txt recipient@domain.com
Вы можете попробовать это:
(cat ./body.txt)|mailx -s "subject text" -a "attchement file" receiver@domain.com