Обновить

Отправь мне в почту файл с сервера

Всем привет!

Есть множество способов скопировать файл или его фрагмент с linux сервера: "копипаста", scp/winscp, "комбайны" типа MobaXterm, php -S ..., python -m http.server ... . Для меня, неожиданно, оказался удобным вариант отправки такого файла, если он не слишком большой, себе на почту, в виде вложения, особенно для дальнейшей пересылки коллегам (архивы журналов, примеры конфигураций ...). Для технической реализации потребуется корпоративный почтовый сервер, упомянутый здесь и bash (даже, точнее, sh :) с утилитами, которые всегда есть "из коробки". Да, никакого специального ПО, предназначенного для работы с электронной почтой, ставить на каждый linux сервер не придется.

За основу были взяты примеры отсюда

Результат выглядит так:

$ nano ~/mail.sh

#!/bin/sh

[ -f "$1" ] || { echo Example: ~/mail.sh attach_file_name; exit 1; }

EMAIL="youremail@yourcorp.ru"
MAILSERVER="mailhub.yourcorp.ru"
FILENAME=$1

{
    sleep 2
    echo "EHLO $MAILSERVER"; sleep 1
    echo "MAIL FROM: <$EMAIL>"; sleep 1
    echo "RCPT TO: <$EMAIL>"; sleep 1
    echo "DATA"; sleep 1
    echo "To: $EMAIL"
    echo "Subject: $FILENAME"
    echo "MIME-Version: 1.0 (mime-construct 1.9)"
    echo "Content-Type: $(/usr/bin/file -bi "$FILENAME"); name=\"$FILENAME\""
    echo "Content-Transfer-Encoding: base64"
    echo
    openssl base64 < "$FILENAME"
    echo '.'
    echo "QUIT"
    echo
} | nc $MAILSERVER 25

$ chmod +x ~/mail.sh

$ ~/mail.sh /etc/os-release

$ sudo ~/mail.sh /var/log/syslog.2.gz

Еще, скрипт наглядно демонстрирует работу протокола SMTP и пример форматирования электронного письма с вложением, о чем мои коллеги рассказывают на занятиях

Буду рад, если кому то пригодится, с наступающим Новым Годом!

Теги:
-1
Комментарии4

Публикации

Ближайшие события