Как прикрепить файл при отправке электронной почты через оболочку?

Вопрос или проблема

Я использовал следующий код для отправки электронной почты через shell-скрипт.

Код: mail -s "тема" [email protected] <<< "Текст письма"

Это сработало. Но я хочу прикрепить файл при отправке письма. Как это сделать?

Один из способов прикрепить файл — закодировать его. Например

uuencode файл_для_прикрепления файл_для_прикрепления | mail -s "тема" [email protected] 

это прикрепит файл_для_прикрепления к письму

Вы также можете использовать mime-construct (https://linux.die.net/man/1/mime-construct) или makemime (http://manpages.ubuntu.com/manpages/trusty/man1/makemime.1.html), если один из этих инструментов доступен.

Пример из страницы man mime-construct:

Отправьте часть с обычным текстом и прикрепите файл, автоматически устанавливая тип содержимого файла и имя –attachment.

mime-construct --to "$recip" --subject "$file" \
--string "Вот файл, о котором я вам говорил.$nl" \
--file-attach "$file"

Конечно, также возможно вручную создать все MIME-заголовки, границы и кодировки файлов в вашем скрипте. Пример (довольно сложный) можно найти в некоторых скриптах, которые являются частью (лицензия BSD) ПО HylaFAX. Ищите функцию CreateMailMessage в notify.sh.in и common-functions.h.in в каталоге util исходного кода. (см. https://www.hylafax.org/, ftp://ftp.hylafax.org/source/)

Вы можете использовать “mutt”, если он установлен на вашем компьютере с Linux.

mutt -a "файл_для_прикрепления"

Другие параметры те же, что и в команде mail.

Ответ или решение

Для отправки электронного письма с вложением через оболочку (shell) вы можете воспользоваться несколькими вариантами. Ниже представлены наиболее распространенные методы.

1. Использование команды uuencode

Если у вас установлена утилита uuencode, вы можете использовать её для кодирования вложения. Пример команды:

uuencode file_to_attach file_to_attach | mail -s "Тема письма" [email protected]

В этом примере файл file_to_attach будет прикреплен к письму.

2. Использование mutt

Если на вашей системе установлен почтовый клиент mutt, это самый простой способ отправить письмо с вложениями. Пример команды:

echo "Текст письма" | mutt -s "Тема письма" -a path/to/file_to_attach -- [email protected]

Здесь path/to/file_to_attach — путь к вашему файлу, который вы хотите прикрепить.

3. Использование mime-construct или makemime

Если у вас установлены инструменты mime-construct или makemime, вы можете использовать следующий пример с mime-construct:

mime-construct --to "[email protected]" --subject "Тема письма" \
--string "Вот файл, о котором я говорил." \
--file-attach "file_to_attach"

Это позволяет автоматически задать тип содержимого и имя прикрепляемого файла.

4. Создание MIME-заголовков вручную

Хотя это более сложный подход, вы можете также создать все MIME-заголовки и границы вручную. Вам могут понадобиться примеры из сложных сценариев, таких как те, что содержатся в проекте HylaFAX, где вы можете найти функции создания SMTP-сообщений.

В заключение, выбирайте метод, который наиболее удобен для вас и соответствует вашим требованиям. mutt обычно считается наиболее простым и удобным инструментом для управления электронной почтой с вложениями через командную строку.

Оцените материал
Добавить комментарий

Капча загружается...