LINUX.ORG.RU
ФорумAdmin

Отправка письма из командной строки через внешний smtp


0

0

Всем привет!
Посоветуйте как мне лучше поступить в данной ситуации:
есть удаленный сервер (linux-server) на котором выполняются определенные операции результат которых я хочу получать по почте. Система стоит debian и по умолчанию установлен exim для локальной работы. Также есть на другом сервере организованная почтовая служба (postfix) при помощи этого smtp мне бы и хотелось отправлять письма, а не настраивать на каждом сервере, более расширенную чем локальная доставка, почтовую служу.
Варианты:
1) программа mail - не подходит, так как использует локальный сервер, а он у меня локально только отправляет.
2) mutt - что-то, что сходу просит закачать 3 метра архивов с 8 какими-то непонятными библиотеками (не в восторге, для чего и не аукнится ли это в безопасности?).
3) perl-скрипт - также требует для установки кучу библиотек perl.
4) ну и последний - очень мне приглянувшийся, но так и не найденный вариант его решения - это bash-sсript в связке с telnet.

Последний как мне кажется самый оптимальный и безопасный, то мне так и не удалось его реализовать.
Если кто подскажит как это сделать или предложит другой подходящий вариант буду очень рад. Требование у меня ко всему этому - меньше строк(программ)- больше безопасности.
Спасибо.


>а не настраивать на каждом сервере, более расширенную чем локальная доставка, почтовую служу.

Одна строка в конфиге MTA и никаких стороних приблуд.

sdio ★★★★★
()

если не нужен exim4, то можно поставить esmtp , libesmtp5 , у него конфиг из 4-ех строчек ...

прописать smarthost и все ....

j262 ★★
()

>4) ну и последний - очень мне приглянувшийся, но так и не найденный вариант его решения - это bash-sсript в связке с telnet.

Не знаю зачем telnet, bash и так умел работать с tcp сокетом. На нем народ http-proxy писал. Но еще лучше bash + awk (точнее gawk), пример скрипта, отправляющего письмо по smtp на gawk я видел в Инете. Но это, если хочется учить азы велосипедостроения, поднимать скил bash/awk-скриптинг. Есть простые и очень простые smtp-сервера, но которые умеют все что надо --- резолвить MX и держать очередь почты...

>Требование у меня ко всему этому - меньше строк(программ)- больше безопасности.

Даже не знаю, что и сказать :)) Вы главное в ядро Линукса не заглядывайте :)

mky ★★★★★
()
Ответ на: комментарий от mky

т.е. никто ничем кроме как в настройке почтовиков "в одну строчку" похвастаться не может?
>Не знаю зачем telnet, bash и так умел работать с tcp сокетом.
А вот здесь я чего-то совсем не понял - лично я пытался при помощи bash отдать через telnet на 25-й порт все команды отправки письма.Что Вы имели в виду когда написали "bash и так умел работать с tcp сокетом"?

Ну и по поводу коментария на счет ядра - Вы наверное суть выражения не поняли....Меня не сложности пугают, а заботит надерность исходя из простой истины - чем больше символов - тем больше ошибок, чем пока и счетаю поднимание полноценного почтовика, когда можно обойтись узкозаточенным скриптом. Но это все лирика...

av
() автор топика
Ответ на: комментарий от av

>bash и так умел работать с tcp сокетом.

Не во всех дистрах, в некоторых его, bash, собирают без поддержки таких возможностей в целях увеличения-усиления-расширения безопасности.

anonymous
()
Ответ на: комментарий от av

>поднимание полноценного почтовика, когда можно обойтись узкозаточенным скриптом.

Если ты называешь МТА, умеющий кроме локальной доставки еще и доставку на smarthost, полноценным почтовиком, то мне жалко твоего работодателя. А может ты root@localhost?

sdio ★★★★★
()
Ответ на: комментарий от av

(sleep 5;                           \
 echo "helo domain.com";            \
 sleep 5;                           \
 echo "mail from: user@domain.com"; \
 sleep 5;                           \
 echo "rcpt to: user@doamin.ru";    \
 sleep 5;                           \
 echo "data";                       \
 sleep 5;                           \
 cat /tmp/body.txt;                 \
 sleep 5;                           \
 echo ".";                          \
 sleep 5;                           \
 echo "quit";                       \
 sleep 5) | telnet mail.domain.ru 25


Смысл понятен?

sdio ★★★★★
()
Ответ на: комментарий от sdio

Sdio, ну что ты не по теме все воду льешь, и язык собственного сочинения впариваешь... Не знаешь толком, тогда и нечего кота за хвост тянуть. Я немного понимаю в написании скриптов, но к сожалению не на столько что бы решить мою задачу, но то что ты написал это вообще что-то типа - "сто лет назад где-то видел, что-то помню, попробуй может повезет"...

Извиняюсь за жесткость, но просто уже достало слушать пафасные речи. A реально-верных ответов по сути - ноль.

av
() автор топика
Ответ на: комментарий от av

Что просил (баш+телнет), то и получил. Оно работает, но если ты даже это не осилил, то увы ...

sdio ★★★★★
()
Ответ на: комментарий от av

Вообще непонятно, чего тебе надо, и почему вместо благодарности sdio за скрипт, который ты просил, от тебя какое-то недовольное мычание доносится?

Teak ★★★★★
()
Ответ на: комментарий от Teak

sdio, извини я был не прав, ты действительно все правильно написал. Я просто почти все тоже самое два дня делал и нифига не выходило :((...
Окончательный вариант у меня такой получился:
#!/bin/bash
(sleep 2
echo "helo domain.ru"
sleep 2
echo "mail from: <user@domain.ru>"
sleep 2
echo "rcpt to: <user@domain.ru>"
sleep 2
echo "data"
sleep 2
echo "test"
sleep 2
echo "."
sleep 2
echo "quit"
sleep 2) | telnet 192.168.1.1 25

av
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.