Отправка электронной почты из скрипта bash - PullRequest
0 голосов
/ 16 марта 2019

Я использую Ubuntu 18.04 LTS, GNU Mailutils 3.4 и MSMTP 1.6.6 для отправки электронного письма, содержащего вложение, из скрипта Bash (и / или тестирования из командной строки). Я использовал BSD-Mailx, когда сервер работал с 16.04, но при обновлении до 18.04 Mailx не смог отправлять вложения.

Я пробовал несколько форматов команды mail, чтобы передать текст в тело письма, но все они, похоже, не работают. Некоторые примеры:

echo "This is the body of the e-mail" | mail address@example.com -s "This is the subject" -A /file/path/file.txt

Все, что я получаю, это прикрепленный файл с пустым адресом электронной почты.

mail address@example.com -s "This is the subject" -A /file/path/file.txt <<< echo "This is the body of the e-mail"

Опять пустое письмо с приложением.

Я также попробовал это с адресом электронной почты в конце команды, который все еще только дает пустое электронное письмо с приложением.

Я пробовал несколько других итераций, описанных выше, таких как одно < перенаправление, | текст в конце команды, что, конечно, не удается, но я просто пытаюсь угадать правильный формат.

Кто-нибудь еще понял это?

Ответы [ 2 ]

1 голос
/ 17 марта 2019

с помощью mailutils

Я думаю, что проблема в том, что если вы укажете -A, stdin игнорируется: https://savannah.gnu.org/bugs/?54992

Вы можете включить основной текст в качестве дополнительного вложения:

echo "This is the body of the e-mail" |\
mail address@example.com \
    -s "This is the subject" \
    --skip-empty-attachments \
    --content-type text/plain -A - \
    -A /file/path/file.txt

с использованием Mutt

Хотя я не думаю, что Mutt действительно предназначен для сценариев, похоже, что это должно работать:

echo "this is the body" |\
mutt \
  -s "this is the subject" \
  -a /file/path/file.txt -- \
  address@example.com
0 голосов
/ 18 марта 2019

Спасибо @jhnc I за указание на https://savannah.gnu.org/bugs/?54992. Я разместил там свою проблему и получил ответ, что это ошибка, которая теперь исправлена ​​в Mailutils 3.5-3 в соответствии с этим обсуждением https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=918806#22.

Тем временем существует обходной путь, добавляющий атрибут --mime, например, так:

echo "body text" | /usr/bin/mail --mime -s "some subject" -A "somefile.csv" my@email.com

Очевидно, мне нужно немного поработать над моим участием в Google foo и Stackoverflow.И я надеюсь, что это «правильный» способ ответить на мой первоначальный вопрос.

...