здравствуйте господа!
есть необходимость написать универсальную функцию отправки 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!!
.
---------------НЕ РАБОТАЮТ!
Подскажите плизз идеи.
Не работают, потому что ввод/вывод получается несинхронизированный. Ты вываливаешь все сразу, а нужно чтоб была последовательность запрос-ответ. Смотреть нужно в сторону 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'е налабать или еще на чем-нибудь...
Спасибо за идеи господа.
perl это чудо конечно, но к сожалению его нет на салярке, а ставить его удаленно на все мои 15 девайсов, как то не хочется..., к тому же не секьюрно это.
Можно использовать программу nail - это аналог mail, который работает с SMTP.
Сейчас это вроде находится здесь:
http://heirloom.sourceforge.net/mailx.html
Что-то не пойму, команды mail(x) нет?
>Что-то не пойму, команды mail(x) нет?есть mail (и mailx на соляре), но на некоторых девайсах письма возвращаются root`y типа "не могу доставить и всё такое", а с некоторых нормально уходят, проблема наверно в настройках почтовой системы DNS или х.е.з. чего. поэтому и хочется сделать железно, универсально.