连接失败:IO::Socket::INET:Connect:timeout在Perl中显示。
我已编写此脚本,通过gmail smtp将邮件发送到我的gmail帐户。它不工作并且给出了已经提到的错误连接失败:IO::Socket::INET:Connect:timeout在Perl中显示。,perl,scripting,Perl,Scripting,我已编写此脚本,通过gmail smtp将邮件发送到我的gmail帐户。它不工作并且给出了已经提到的错误 use Net::SMTP::TLS; my $mailer = new Net::SMTP::TLS( 'smtp.gmail.com', Hello => 'smtp.gmail.com', Port => 587, User => 'cetranger@gmail.co
use Net::SMTP::TLS;
my $mailer = new Net::SMTP::TLS(
'smtp.gmail.com',
Hello => 'smtp.gmail.com',
Port => 587,
User => 'cetranger@gmail.com',
Password=> 'xxxxxx');
$mailer->mail('cetranger@gmail.com');
$mailer->to('cetranger@gmail.com');
$mailer->data;
$mailer->datasend("Sent from perl!");
$mailer->dataend;
$mailer->quit;
试试这个:
use strict;
use warnings;
use Email::Simple;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP::TLS;
my $transport = Email::Sender::Transport::SMTP::TLS->new(
host => 'smtp.gmail.com',
port => 587,
username => 'cetranger@gmail.com',
password => 'xxxxxx'
);
my $message = Email::Simple->create(
header => [
From => 'cetranger@gmail.com',
To => 'cetranger@gmail.com',
Subject => 'Sent from perl!',
],
body => 'Sent from perl!',
);
sendmail( $message, {transport => $transport} );
试试这个:
use strict;
use warnings;
use Email::Simple;
use Email::Sender::Simple qw(sendmail);
use Email::Sender::Transport::SMTP::TLS;
my $transport = Email::Sender::Transport::SMTP::TLS->new(
host => 'smtp.gmail.com',
port => 587,
username => 'cetranger@gmail.com',
password => 'xxxxxx'
);
my $message = Email::Simple->create(
header => [
From => 'cetranger@gmail.com',
To => 'cetranger@gmail.com',
Subject => 'Sent from perl!',
],
body => 'Sent from perl!',
);
sendmail( $message, {transport => $transport} );
这个脚本实际上应该可以运行(我用自己的gmail帐户成功地进行了测试) 我怀疑你中间有防火墙阻止你连接gmail。 你能从你的主机上试试telnet smtp.gmail.com 587吗。你应该有这样的东西:
host$ telnet smtp.gmail.com 587
Trying 173.194.67.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP da8sm6658151wib.6
如果您没有最后3行,这意味着您无法直接连接到gmail服务器。然后检查你自己的防火墙设置(如果有)。这个脚本实际上应该可以工作(我用我自己的gmail帐户成功测试了) 我怀疑你中间有防火墙阻止你连接gmail。 你能从你的主机上试试telnet smtp.gmail.com 587吗。你应该有这样的东西:
host$ telnet smtp.gmail.com 587
Trying 173.194.67.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP da8sm6658151wib.6
如果您没有最后3行,这意味着您无法直接连接到gmail服务器。然后检查您自己的防火墙设置(如果有)