User Tools

Site Tools


отправь_мне_в_почту

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
отправь_мне_в_почту [2025/11/28 14:34]
val created
отправь_мне_в_почту [2025/12/30 11:20] (current)
val
Line 3: Line 3:
 Всем привет! Всем привет!
  
-Не могу не поделиться решением ​[[Средства программирования ​shell#Отправка ​email с вложениями]]+Есть ​множество способов скопировать файл или его фрагмент с linux сервера: "копипаста",​ scp/winscp, "комбайны"​ типа MobaXterm, php -S ..., python -m http.server ... . Для меня, неожиданно, оказался удобным вариант отправки такого файла, ​если он не слишком большой,​ себе на почту, в виде вложения,​ особенно для дальнейшей пересылки коллегам (архивы журналов,​ примеры конфигураций ...). Для технической ​реализации потребуется корпоративный почтовый сервер,​ упомянутый здесь https://​habr.com/​ru/​posts/​961564/ ​и bash (даже, точнее,​ sh :) с утилитами, которые всегда есть "из коробки"​. Да, никакого специального ПО, предназначенного для ​работы с электронной почтой,​ ставить на каждый linux сервер ​не придется
 +  
 +За основу были взяты примеры отсюда https://​serverfault.com/​questions/​38919/​send-an-email-with-an-attached-file-using-telnet-or-netcat 
 + 
 +Результат выглядит так: 
 +<​code>​ 
 +$ 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 
 +</​code>​ 
 + 
 +Еще, скрипт наглядно демонстрирует работу ​протокола SMTP и пример форматирования электронного письма с вложением, о чем мои коллеги рассказывают на занятиях. https://​www.specialist.ru/​course/​yun2-b 
 + 
 +Буду рад, если кому то пригодится,​ с наступающим Новым Годом!
отправь_мне_в_почту.1764329683.txt.gz · Last modified: 2025/11/28 14:34 by val