URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6447
[ Назад ]

Исходное сообщение
"универсальный скрипт отправки e-mail"

Отправлено sergey_green , 08-Май-07 17:49 
здравствуйте господа!
есть необходимость написать универсальную функцию отправки e-mail на заданный адрес, через заданный SMTP-сервер. универсальную значит для Solaris, freeBSD, Linux. Дело в том что в моей Solaris например нет sendmail, фря тоже урезанная и т.п.
возможно это легко, но я плохо знаю shell.
варианты типа:

#!/bin/sh
cat mess.txt | telnet 121.212.23.111 25

или

#!/bin/sh
cat mess.txt > telnet 121.212.23.111 25

где, mess.txt:
---------------
helo MyName
MAIL FROM:xxx@xxx.ru
RCPT TO:adres@mail.ru
DATA
bla-bla!!
.
---------------

НЕ РАБОТАЮТ!
Подскажите плизз идеи.


Содержание

Сообщения в этом обсуждении
"универсальный скрипт отправки e-mail"
Отправлено Alexander S. Salieff , 08-Май-07 17:58 
Не работают, потому что ввод/вывод получается несинхронизированный. Ты вываливаешь все сразу, а нужно чтоб была последовательность запрос-ответ. Смотреть нужно в сторону expect.
Вроде такого:

#!/usr/bin/expect

spawn telnet smtp.mail.com 25

expect "220 "
send "lhlo localhost\n"
expect "250 "
send "mail from: <john@yandex.ru>\n"
expect "250 "
send "rcpt to: <alisa@mail.ru>\n"
expect "250 "
send "data\n"
expect "354 "
send "Test message string 0
Test message string 1
Test message string 2
Test message string 3
Test message string 4
Test message string 5
Test message string 6
Test message string 7
Test message string 8
Test message string 9
.
"
expect "250 "
send "quit\n"
expect eof

Ну, естесственно по уму ошибки там обрабатывать нужно и т.д. Expect предоставляет достаточно гибкие языковые средства и позволяет все это делать.

Если expect не катит, можно на perl'е налабать или еще на чем-нибудь...


"универсальный скрипт отправки e-mail"
Отправлено sergey_green , 10-Май-07 17:41 
Спасибо за идеи господа.
perl это чудо конечно, но к сожалению его нет на салярке, а ставить его удаленно на все мои 15 девайсов, как то не хочется..., к тому же не секьюрно это.

"универсальный скрипт отправки e-mail"
Отправлено jd , 10-Май-07 02:13 
Можно использовать программу nail - это аналог mail, который работает с SMTP.
Сейчас это вроде находится здесь:
http://heirloom.sourceforge.net/mailx.html

"универсальный скрипт отправки e-mail"
Отправлено dronord , 16-Май-07 13:25 
Что-то не пойму, команды mail(x) нет?

"универсальный скрипт отправки e-mail"
Отправлено sergey_green , 17-Май-07 11:16 
>Что-то не пойму, команды mail(x) нет?

есть mail (и mailx на соляре), но на некоторых девайсах письма возвращаются root`y типа "не могу доставить и всё такое", а с некоторых нормально уходят, проблема наверно в настройках почтовой системы DNS или х.е.з. чего. поэтому и хочется сделать железно, универсально.