Отправка простого корпуса сообщения + вложение файла с использованием Linux mailx [Duplicate

StackOverflow https://stackoverflow.com/questions/8314999

  •  25-10-2019
  •  | 
  •  

Вопрос

Этот вопрос уже имеет ответ здесь:

Я пишу 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top