Я написал Perl-скрипт для отправки электронной почты. Он отправляется с одного сервера, но не с другого.код.
#!/usr/bin/perl -w
use Net::SMTP::SSL;
use Try::Tiny;
sub send_mail {
try {
my $to = 'user@gmail.com' ;
my $subject = '[important] 1Test Email',;
my $body = 'Text message bod';
my $from = 'user@gmail.com';
my $password = '***********';
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() || die "data sent failed!\n";
$smtp->quit;
} catch {
warn "caught error: $_";
};
}
# Send away!
&send_mail('johnny@mywork.com', 'Server just blew up', 'Some more detail');
версия perl v5.10.1
журналы на обоих серверах: в случае успешной отправки журналы в конце регистрируются
Net::SMTP::SSL=GLOB(0x14530d8)<<< (decoded) Password:
Net::SMTP::SSL=GLOB(0x14530d8)>>> (decoded) *******
Net::SMTP::SSL=GLOB(0x14530d8)>>> *********
Net::SMTP::SSL=GLOB(0x14530d8)<<< 235 2.7.0 Accepted
Net::SMTP::SSL=GLOB(0x14530d8)>>> MAIL FROM:
в случае сбоя.logs:
Net::SMTP::SSL=GLOB(0x7e60b8)>>> dXNlcm5hbWUK
Net::SMTP::SSL=GLOB(0x7e60b8)<<< 334 UGFzc3dvcmQ6
Net::SMTP::SSL=GLOB(0x7e60b8)<<< (decoded) Password:
Net::SMTP::SSL=GLOB(0x7e60b8)>>> (decoded) *******
Net::SMTP::SSL=GLOB(0x7e60b8)>>> ********
Net::SMTP::SSL=GLOB(0x7e60b8)<<< 534-5.7.14
Я уже создал менее защищенный токен для mygmailId.проблема в том, что его отправляют одному, а не другому.Пожалуйста, помогите мне разобраться в этом