LINUX.ORG.RU
ФорумAdmin

Нужна помощь: BSD, perl-скрипт отправки почты через smtp


0

0

Заранее прошу извинить за то, что не зная в должной мере тонкостей сетевого программирования, так сказать, лезу не в свое дело.
Больше сделать некому...

Ситуация такая: понадобился скрипт для отправки сообщения со страницы, используя smtp. На моей машине и паре других Линухов все работает отлично. Но на сервере (BSDi BSD/OS 4.2) -- облом полный. Address family not supported by protocol family и все.

Отлаживать его "на месте" возможности нет.
Беда в том, что доступа к cgi-bin, да и вообще куда-либо кроме WWW_root я не имею -- все только через админа (связь где-то раз в неделю), он помочь тоже не может -- больше по C. По словам админа, на сервере куча сетевого софта на C работает нормально.
Чувствую -- дело в том, что все находится на одной машине (см. код), но...
Да и опять-таки, на локальной машине (Linux) как не извращаюсь -- все работает нормально.

Код скрипта: http://just4demo.narod.ru/cgi-bug/mf-test.cgi
Вызывающий html: http://just4demo.narod.ru/cgi-bug/mf-test.html

Прошу, гляньте в чем может быть дело, пару месяцев уже вожусь...


честно скажу, копаться в чужом скрипте тяжело, но может эта процедура тебе поможет (у меня работает):

use IO::Socket;

sub mail_to {
$remote = IO::Socket::INET->new( Proto => "tcp",
PeerAddr => $host,
PeerPort => "mail(25)",
);
unless ($remote) { die "cannot connect to mail daemon on $host" }
$remote->autoflush(1);
print $remote "helo vasya.pupkin.ru\n";
$ret[1]=<$remote>;
print $remote "mail from: $namefrom\n";
$ret[2]=<$remote>;
print $remote "rcpt to: $nameto\n";
$ret[3]=<$remote>;
print $remote "data\n";
$ret[4]=<$remote>;
print $remote "Subject: $subject\n\n";
print $remote "$mess";
$ret[7]=<$remote>;
print $remote "\n\.\n";
$ret[8]=<$remote>;
print $remote "quit\n";
$ret[9]=<$remote>;
}
надеюсь с передаваемыми переменными все понятно?
Успехов!!!

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