gpt4 book ai didi

perl - 如何连接到 Gmail 收件箱

转载 作者:行者123 更新时间:2023-12-05 00:52:21 26 4
gpt4 key购买 nike

我目前正在尝试使用 Perl 连接到 gmail 收件箱和
Net::IMAP::Client
使用以下代码

use strict;
use warnings;

use Net::IMAP::Client;

my $user = '[address]@gmail.com';
my $pwd = '[password]';

my $imap = Net::IMAP::Client->new(
server => 'imap.gmail.com',
user => $user,
pass => $pwd,
ssl => 1, # (use SSL? default no)
ssl_verify_peer => 0, # (use ca to verify server, default yes)
port => 993 # (but defaults are sane)
) or die "Could not connect to IMAP server: $_";

$imap->login or
die('Login failed: ' . $imap->last_error)

但是 $imap变量是 undef我收到了这个错误:

Use of uninitialized value $_ in concatenation (.) or string at testIMAP.pl line 9.
Could not connect to IMAP server: at testIMAP.pl line 9.



我已使用 Outlook 成功连接到邮箱,但由于没有收到错误消息,我不确定在哪里查看。有谁知道我在这里做错了什么?

最佳答案

非常感谢 zdim 帮助进行故障排除。

首先,zdim 指出我的错误变量不正确。 $_ 应该是 $!

这显示了错误消息“网络无法访问”,但是我能够成功通过 pint 和 telnet 连接到 'imap.gmail.com'。

在这里找到了解决方案
Perl IO::Socket::SSL: connect: Network is unreachable .

将 Net::IMAP::Client 模块中的 use 语句更改为以下内容:

use IO::Socket::SSL 'inet4';

在此之后,连接建立,但登录会失败
Login failed: [ALERT] Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)

这是由于 Gmail 的安全功能。我收到一封电子邮件,让我确认连接不是恶意的,然后后续登录成功。

对于其他人来说,最后一个可能有一些解决方案。如果激活了两步验证,您可能需要发出“应用程序密码”,或者您可能需要打开“允许安全性较低的应用程序”

关于perl - 如何连接到 Gmail 收件箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com