我正在尝试使用Email::Send::Gmail发送电子邮件,但由于某种原因,我收到一条错误消息,不允许我连接。
代码是标准示例:
#!/usr/bin/perl
use strict;
use warnings;
use Email::Send;
use Email::Send::Gmail;
use Email::Simple::Creator;
my $email = Email::Simple->create(
header => [
From => '[email protected]',
To => '[email protected]',
Subject => 'Server down',
],
body => 'The server is down. Start panicing.',
);
my $sender = Email::Send->new(
{ mailer => 'Gmail',
mailer_args => [
username => '[email protected]',
password => 'XXXX',
]
}
);
eval { $sender->send($email) };
die "Error sending email: $@" if $@;
确切的错误是:
Email::Send::Gmail: error connecting to server smtp.gmail.com
at C:/Perl/site/lib/Email/Send.pm line 256.
我查看了我的 Gmail 帐户,似乎没有任何“允许访问”的内容。我在 Windows7 上并从命令行运行。
有任何想法吗?
谢谢,
A
是时候升级您的依赖项了。
Email::Gmail::Send依赖于取决于Net::SMTP::SSL这取决于IO::Socket::SSL。解决此类问题的第一步是升级模块依赖项,以防新问题已得到解决。
不幸的是,4天前,当你第一次提出这个问题时,我无法通过测试套件IO::Socket::SSL 1.986
on Strawberry Perl 5.18.2
.
t/public_suffix_lib_uri.t ......... ok
failed to connect: An operation was attempted on something that is not a socket. at t/public_suffix_ssl.t line 87.
# Looks like you planned 24 tests but ran 2.
# Looks like your test exited with 10038 just after 2.
幸运的是,此后作者已将该模块更新为IO::Socket::SSL 1.988
,并且我能够在 Windows 7 和 Linux 上完全安装和使用它。目前它会抛出重新定义的警告(cpan ticket 95881),但升级此依赖项后我能够在 Windows 上发送 Gmail 邮件。
注意:您需要创建一个application specific password请注意此代码,否则 Gmail 可能会阻止登录并向您发送一封“可疑登录被阻止”的电子邮件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)