Один из посетителей блога задал вопрос о возможности отправки файла на e-mail, используя штатную утилиту mail. Однако штатная утилита mail не умеет работать с аттачами, так уж исторически сложилось...
Не будем расстраиваться преждевременно и попытаемся найти выход из сложившейся ситуации.
Скорее всего, отправка будет использоваться в shell-скриптах, поэтому варианты использования скриптов на php, perl, и т.д. - не рассматриваем.
Один из простых и действенных вариантов - использование конвертора uuencode с дальнейшим перенаправлением результата в утилиту mail:
# uuencode /var/log/auth.log auth.log | mail -s "TestMail_1" test [at] example [dot] com |
где
- /var/log/auth.log - путь к отправляемому файлу
- auth.log - имя файла, которое будет отображено в письме
- TestMail_1 - тема сообщения
- test [at] example [dot] com - адрес электронной почты получателя
Еще одним вариантом является использованием утилиты mpack.
Установим утилиту из системы портов:
# cd /usr/ports/converters/mpack && make install clean && rehash |
После установки отправляем тестовое письмо с вложенным аттачем:
# mpack -s "TestMail_2" /var/log/auth.log test [at] example [dot] com |
где
- TestMail_2 - тема сообщения
- /var/log/auth.log - путь к отправляемому файлу
- test [at] example [dot] com - адрес электронной почты получателя
Еще одним вариантом является использование mutt, который по сути является полноценным консольным постовым клиентом, что уже выходит за рамки этой заметки. Возможно когда-то и появится статья на эту тему, а пока будем довольствоваться двумя предложенными вариантами.