LinuxForum.Fans
Тема

Перенос скрипта с Linux на Freebsd. Net::smtp::ssl

Автор: it_bidlo 3 сообщений 1417 просмотров
#108676

Здравствуйте уважаемое сообщество.

Есть скрипт который проходит авторизацию на почтовом сервере Google и рассылает корпоративную почту. При миграции с Linux сервера на FreeBSD скприт перестал проходить авторизацию... хотя бёрём копируем файл обратно... всё работает. Сразу скажу что login и pass верные, модули собранные...

text
 

#!/usr/bin/perl -w

use Net::SMTP::SSL;

sub send_mail { my $to = $_[0]; my $subject = $_[1]; my $body = $_[2];

my $from = 'exemple@gmail.com'; my $password = 'xxxxXxX';

my $smtp;

if (not $smtp = Net::SMTP::SSL->new('smtp.gmail.com', Port => 465, Debug => 1)) { die "Could not connect to server\n"; } $smtp->auth($from, $password) || die "Authentication failed!\n";

$smtp->mail($from . "\n"); my @recepients = split(/,/, $to); foreach my $recp (@recepients) { $smtp->to($recp . "\n"); }

$smtp->data(); $smtp->datasend("From: " . $from . "\n"); $smtp->datasend("To: " . $to . "\n"); $smtp->datasend("Subject: " . $subject . "\n"); $smtp->datasend("\n"); $smtp->datasend($body . "\n"); $smtp->dataend(); $smtp->quit; }

# Send away! &send_mail('exemple@gmail.com', 'Server just blew up', "@ARGV");

text
Net::SMTP::SSL>>> Net::SMTP::SSL(1.01)
Net::SMTP::SSL>>>   IO::Socket::SSL(1.31)
Net::SMTP::SSL>>>     IO::Socket::INET(1.31)
Net::SMTP::SSL>>>       IO::Socket(1.31)
Net::SMTP::SSL>>>         IO::Handle(1.28)
Net::SMTP::SSL>>>           Exporter(5.63)
Net::SMTP::SSL>>>   Net::Cmd(2.29)
Net::SMTP::SSL=GLOB(0x2867c690)<<< 220 mx.google.com ESMTP t50sm557732eeh.18
Net::SMTP::SSL=GLOB(0x2867c690)>>> EHLO localhost.localdomain
Net::SMTP::SSL=GLOB(0x2867c690)<<< 250-mx.google.com at your service, &#91;1.1.1.1]
Net::SMTP::SSL=GLOB(0x2867c690)<<< 250-SIZE 35651584
Net::SMTP::SSL=GLOB(0x2867c690)<<< 250-8BITMIME
Net::SMTP::SSL=GLOB(0x2867c690)<<< 250-AUTH LOGIN PLAIN XOAUTH
Net::SMTP::SSL=GLOB(0x2867c690)<<< 250 ENHANCEDSTATUSCODES
Authentication failed!
#108860

Подтверждаю, не работает.
Как вариант сравнить версии модулей на Linux и на FreeBSD, причем всех, которые входят в зависимости: Net::SMTP, IO::Socket::SSL и т.д.
Вторым вариантом могу предложить попробовать модуль Net::SMTP::TLS

#108902

Вот,что у нас творится под Linux

text

Net::SMTP::SSL>>> Net::SMTP::SSL(1.01) Net::SMTP::SSL>>> IO::Socket::SSL(1.35) Net::SMTP::SSL>>> IO::Socket::INET(1.31) Net::SMTP::SSL>>> IO::Socket(1.31) Net::SMTP::SSL>>> IO::Handle(1.28) Net::SMTP::SSL>>> Exporter(5.64_01) Net::SMTP::SSL>>> Net::Cmd(2.29) Net::SMTP::SSL=GLOB(0x9092f30)<<< 220 mx.google.com ESMTP u1sm2229974eeh.22 Net::SMTP::SSL=GLOB(0x9092f30)>>> EHLO localhost.localdomain Net::SMTP::SSL=GLOB(0x9092f30)<<< 250-mx.google.com at your service, [1.1.1.1] Net::SMTP::SSL=GLOB(0x9092f30)<<< 250-SIZE 35651584 Net::SMTP::SSL=GLOB(0x9092f30)<<< 250-8BITMIME Net::SMTP::SSL=GLOB(0x9092f30)<<< 250-AUTH LOGIN PLAIN XOAUTH Net::SMTP::SSL=GLOB(0x9092f30)<<< 250 ENHANCEDSTATUSCODES Net::SMTP::SSL=GLOB(0x9092f30)>>> AUTH LOGIN Net::SMTP::SSL=GLOB(0x9092f30)<<< 334 VXNlcm5hbWU6 Net::SMTP::SSL=GLOB(0x9092f30)>>> Y291cmllckBva3N0ZWwucnU= Net::SMTP::SSL=GLOB(0x9092f30)<<< 334 UGFzc3dvcmQ6 Net::SMTP::SSL=GLOB(0x9092f30)>>> YmxibnRkZ2JwbGU=

Войдите или зарегистрируйтесь, чтобы ответить.