【发布时间】:2018-11-29 16:01:56
【问题描述】:
我需要使用以下脚本编写 shell 脚本来获取 Office 365 中的收件箱文件夹计数。
{
echo "01 login ${IMAP_USER} ${IMAP_PASSWD}"
sleep 2
echo "03 STATUS INBOX MESSAGES"
sleep 2
echo "19 logout"
} | telnet outlook.office365.com 993 | tee ${LOG_DIR}/imap_status.log*
我在日志文件中只收到以下消息。
Trying 52.97.137.194...
Connected to outlook.office365.com (52.97.137.194).
Escape character is '^]'.
使用 imap 用户名和密码无法登录邮箱。 由于是 O365,我在用户名字段中提供了完整的邮件 ID。
我单独测试了 telnet 命令,这也显示了相同的消息。在 Office 365 迁移之前,我可以使用 telnet 连接和登录邮箱。
我需要对 Office 365 执行任何特定更改吗?
【问题讨论】:
-
telnet 不支持 SSL。为此,您将需要一个不同的工具。
-
Telnet 也因在连接建立之前丢弃标准输入而臭名昭著。如果你想通过管道进入标准输入,你必须添加一个初始睡眠。在这种情况下,这可能会引发语法错误。
-
一个不错的 telnet 替代方案来尝试进行 SSL 包装的连接是
openssl s_client -host outlook.office365.com -port 993 -
openssl 命令有助于连接邮箱。我收到的消息是“* OK The Microsoft Exchange IMAP4 service is ready”。建立连接后,如何在 openssl 命令提示符下获取 INBOX 邮件数。