Вобщем, такая беда. Мой комп не имеет фиксированного ip-адреса и почту я могу отсылать только с чужого smtp-сервака (логин и пасс требуются). Мой скрипт (perl) должен послать письмо, но я столкнулся с проблемами. 1) я посылаю письмо, испрользуя Net::SMTP. но блин! вот кусок из скрипта =============== use Net::SMTP; my $smtp = Net::SMTP->new($cfg{smtp_server}, Debug => 0) or croak "Unable to create Net::SMTP\n"; $smtp->auth("****LOGIN*****","xxxxPASSxxxx");
$smtp->mail($from); $smtp->to($to); $smtp->data(); $smtp->datasend("From: $from\n"); $smtp->datasend("X-Mailer: Perl Powered Socket Net::SMTP Mailer\n"); $smtp->datasend("Subject: $subject\n"); $smtp->datasend("\n"); $smtp->datasend($message); $smtp->dataend(); $smtp->quit(); ========= пишется следующее: Unknown callback: 'authname'. (user|auth|language) вот тримодуля, которые к этому привели: SMTP.pm , SASL.pm , Cyrus.pm
authen-sasl и authen-sasl-cyrus пришлось отельно собирать, в редхете это _напрочь_ отсутствует, хотя Net::SMTP->auth ТРЕБУЕТ последних !
2)через /usr/sbin/sendmail но КАК послать письмо smtp-серверу с логином_ и _пассом_ ? пользовал webmin, но там ничего про авторизацию :(
3)вот ещё:
==============
($x, $x, $x, $x, $here) = gethostbyname($null); ($x, $x, $x, $x, $there) = gethostbyname($cfg{smtp_server});
my $thisserver = pack('S n a4 x8', 2, 0, $here); my $remoteserver = pack('S n a4 x8', 2, 25, $there);
(!(socket(S, 2, 1, 6))) && (croak "Socket failure. $!"); (!(bind(S, $thisserver))) && (croak "Bind failure. $!"); (!(connect(S, $remoteserver))) && (croak "Connection to $cfg{smtp_server} has failed. $!");
my $oldfh = select(S); $| = 1; select($oldfh);
$_ = <S>; ($_ !~ /^220/) && (croak "Sending Email: data in Connect error - 220. $!");
print S "HELO $cfg{smtp_server}\r\n"; $_ = <S>; ($_ !~ /^250/) && (croak "Sending Email: data in Connect error - 250. $!");
print S "MAIL FROM:<$from>\n"; $_ = <S>; ($_ !~ /^250/) && (croak "Sending Email: Sender address '$from' not valid. $!");
print S "RCPT TO:<$to>\n"; $_ = <S>; ($_ !~ /^250/) && (croak "Sending Email: Recipient address '$to' not valid. $!");
print S "DATA\n"; $_ = <S>; ($_ !~ /^354/) && (croak "Sending Email: Message send failed - 354. $!");
===================== это содрано с какого-то скрипта, но я не понимаю опять же как авторизнуться :)
====================
Пожалуйста, кто может, помогите! Всё-таки предпочитаю 1) и 2) ....
весия perl 5.8.0 asplinux9
заранее спасибо!