Как послать письмо с аттачем в UNIX?
Автор : Вадим Фёдоров
Пользователь UNIX часто сталкивается с проблемой, как заставить скрипт написанный на bash или shell отправлять письмо с прикрепленным файлом? Ниже мы рассмотрим различные способы отправки писем с прикрепленными файлами.
Во всех примерах используются следующие переменные:
TXTFILE=/tmp/textfile # Текст сообщения
ATTFILE=/tmp/binary_file #Файл который должен быть прикреплен к письму
SUBJECT="Your attachment" # Тема письма
[email protected] # Адрес получателя
Способ 1: Использование UUE кодирования.
Данный способ позволяет послать перекодированный файл, как текст сообщения.
uuencode $ATTFILE $ATTFILE | mail -s "$SUBJECT" $MAILTO
или
(uuencode $FILE1 $FILE1; uuencode $FILE2 $FILE2) | mail -s "$SUBJECT" $MAILTO
Способ 2: Использование metamail
metamail (ftp://thumper.bellcore.com/pub/nsb/) - набор утилит для работы с сообщениями в MIME формате. metasend, рассматриваемая ниже предназначена для отправки писем в MIME формате.
metasend -b -s "$SUBJECT" -f $TXTFILE -m text/plain -e none -n -f $ATTFILE -m application/octet-stream -e base64 -t $MAILTO
Способ 3: Использование mpack
mpack (ftp://ftp.andrew.cmu.edu/pub/mpack/) - небольшая утилита, предазначенная для кодирования/декодирования сообщений в MIME формате.
mpack -s "$SUBJECT" -c application/octet-stream $ATTFILE $MAILTO
Способ 4: Использование mutt
mutt - популярный почтовый агент, который с командной строки позволяет очень просто отправить письмо с прикрепленным файом.
mutt -a $ATTFILE -s "$SUBJECT" $MAILTO < $TXTFILE
Ссылки по теме:
http://www.shelldorado.com/articles/mailattachments.html