【问题标题】:Mail count in O365 Inbox using shell script使用 shell 脚本的 O365 收件箱中的邮件计数
【发布时间】: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 邮件数。

标签: shell office365 imap


【解决方案1】:

根据您希望在邮箱中执行的具体操作,您可以使用Office 365 Graph

该图表使用简单的 http 休息调用,并允许您在用户 Office 365 帐户上做很多事情作为休息命令(POST / GET / DELETE)。

您可以浏览 Outlook 邮件(即 Office 365 Exchange 电子邮件)等类别,看看您是否可以使用类似的功能。

另一个选项是使用 Exchange Online 模块的 PowerShell。 Get-MailboxFolderStatistics 可能会得到你所需要的关于文件夹的一切。

如果您使用用户帐户登录,则只能查看该用户的数据。 使用 Exchange 管理员帐户,您可以从所有用户那里获取信息。

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 2021-09-12
    • 1970-01-01
    • 2011-10-11
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多