【发布时间】:2026-01-26 01:10:01
【问题描述】:
我正在尝试通过 IMAP 连接到 Outlook 电子邮件服务器,但我得到的错误很奇怪。这是我的代码示例:
use Mail::IMAPClient;
my $imap = Mail::IMAPClient->new;
$host='outlook.office365.com';
$username='.....';
$password='.....';
$folder='INBOX';
$imap=Mail::IMAPClient->new(
Server => $host,
User => $username,
Password => $password,
Port => 993,
Ssl => 1,
Clear=> 5,
Folder => $folder,
Uid => 0,
) or die "Cannot connect to $host as $username: $@";
当我运行它时,输出行如下所示:
无法以 [...] 身份连接到 outlook.office365.com:从服务器读取数据时套接字已关闭。
更具体地说,从服务器读取数据时套接字关闭让我感到困惑。
我指定了端口 993,那么剩下的唯一可能的问题是存在阻止此情况的防火墙吗?我已经给我学校的(这是一个学校的电子邮件帐户)技术部门(很久以前)发了电子邮件,他们还没有回复,但希望我能很快收到他们的来信。
当我删除指定端口的行时,我收到了一个更奇怪的错误,我将其包括在内只是希望它在某种程度上相关或有用:
无法以 [...] 身份连接到 outlook.office365.com:发送 '1 Login "baldassaren@wit.edu" {15} 时出错 [此处显示密码,以及我似乎无法在此处强制使用的换行符] ' 到 IMAP:./test.pl 第 10 行的错误文件描述符。
【问题讨论】:
-
第一行的作业是怎么回事?您正在创建一个新客户端并立即将其丢弃。我认为这不是问题的根源,但它会分散注意力,应该予以纠正。
-
您应该打开 IMAPClient 的调试输出并发布结果记录(编辑您的问题以包含更新的信息)。
标签: perl imap imapclient