|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Roman Kondrashin 2:5020/400 09 Feb 2001 11:30:08 To : All Subject : Re: Форма -> е-меил -------------------------------------------------------------------------------- "Roman Reznichenko" <Roman.Reznichenko@p555.f155.n5080.z2.fidonet.org> wrote in message news:981637084@p555.f155.n5080.z2.ftn... > Дайте, плиз, скриптик, для посылки сабжа без использования почтовой программы > пользователя. Т.е. он заполняет форму, жмет "Отправить", они сразу > отправляется... Скриптик так себе... надо бы доработать, но лень... отправляет-то всё равно нормально use Socket; # функция проверки ответа сервера sub checkResponse { $code = shift; if (index ($s, $code) == -1) { return -1; } } sub sendMail { ($from, $to, $subject, $mail) = @_; # здесь указываешь SMTP host $host = "smtp.hostname"; $port = 25; $ip = (gethostbyname ($host))[4]; $server = pack ("S n a4 x8", AF_INET, $port, $ip); $proto = (getprotobyname ('tcp'))[2]; socket (SERVER, PF_INET, SOCK_STREAM, $proto) or return -1; connect (SERVER, $server) or return -1; select (SERVER); $| = 1; select (STDOUT); $s = <SERVER>; &checkResponse ("220"); # представляемся серверу... используешь, в принципе, любое имя print SERVER "helo beerdrinker\n"; $s = <SERVER>; &checkResponse ("250"); print SERVER "mail from: <$from>\n"; $s = <SERVER>; &checkResponse ("250"); print SERVER "rcpt to: $to\n"; $s = <SERVER>; &checkResponse ("250"); print SERVER "data\n"; $s = <SERVER>; &checkResponse ("354"); print SERVER "Subject: $subject\n"; print SERVER "From: $from\n"; print SERVER "To: $to\n"; print SERVER "Content-type: text\/plain; charset=windows-1251\n"; print SERVER "\n"; print SERVER "$mail\n"; print SERVER "\n.\n"; $s = <SERVER>; &checkResponse ("250"); print SERVER "quit\n"; $s = <SERVER>; &checkResponse ("221"); close (SERVER); select (STDOUT); return 0; } # вызов функции $sendError = &sendMail ($from, $to, $subject, $mail); if ($sendError) { # обрабатываем ошибку } else { # всё OK } --- ifmail v.2.15dev5 * Origin: MTU-Intel ISP (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/910423a0d84a.html, оценка из 5, голосов 10
|