#microsoft #outlook #clients #message #read #pnp

bin+lib dovemail

使用 Microsoft 的 PNP CLI 与邮件客户端

1 个不稳定版本

0.0.1 2024年5月3日

#12 in #outlook

自定义许可

24KB
361

邮件通

                    _                                _ _ 
                   | |                              (_) |
  <(' ) /"""/    __| | _____   _____ _ __ ___   __ _ _| |
    \  /   /    / _` |/ _ \ \ / / _ \ '_ ` _ \ / _` | | |
     \.___"    | (_| | (_) \ V /  __/ | | | | | (_| | | |
                \__,_|\___/ \_/ \___|_| |_| |_|\__,_|_|_|

                   Check your email, peacefully.

dovemail 是一个简单的*工具,用于连接 Microsoft 的官方 CLI 工具 m365Maildir 邮件客户端。它允许您在第三方应用程序不被允许的情况下,使用 Aerc、Neomutt、Mozilla Thunderbird 或 GNOME Evolution 等客户端阅读 Outlook 邮件。请参见下文:这是为谁准备的?

检索邮件正常。发送邮件正在开发中。

安装

从 crates.io 安装

cargo install dovemail

Docker 拉取

docker pull registry.gitlab.com/jennydaman/dovemail/master:latest

Podman 拉取

podman pull registry.gitlab.com/jennydaman/dovemail/master:latest

使用 Nix Flakes 安装

各种方法。

使用 Home-Manager

  1. inputs.dovemail.url = "gitlab:jennydaman/dovemail"; 添加到 ~/.home-manager/config/flake.nix
  2. inputs.dovemail.packages.${system}.default 添加到 home.packages
  3. 运行 home-manager switch

使用 nix profile

nix profile install gitlab:jennydaman/dovemail

快速入门

  1. 运行 m365 login
  2. 复制 ./scripts/pull_emails_using_dovemail.sh 并运行它。

设计

邮件通的设计遵循 UNIX 哲学中的“只做一件事,做好一件事”的原则。此仓库提供以下内容

  • dovemail,一个简单的 Rust 程序
  • pull_emails_using_dovemail.sh,一个不简单的 Bash 脚本

用法:dovemail

dovemail 解析 stdin 中的 JSON 并将纯文本文件写入输出目录。典型用法如下

m365 outlook message list | dovemail ~/.local/share/mail/[email protected]/AllMail/tmp
mv ~/.local/share/mail/[email protected]/AllMail/{tmp,new}

与 Podman 一起使用

podman run --rm \
  -v $HOME/.cli-m365-all-connections.json:/home/cli-microsoft365/.cli-m365-all-connections.json:ro \
  -v $HOME/.cli-m365-connection.json:/home/cli-microsoft365/.cli-m365-connection.json:ro \
  -v $HOME/.cli-m365-msal.json:/home/cli-microsoft365/.cli-m365-msal.json:ro \
  docker.io/m365pnp/cli-microsoft365:latest m365 outlook message list \
  | podman run --rm -i -v $HOME/.local/share/mail/[email protected]/AllMail/tmp:/out registry.gitlab.com/jennydaman/dovemail/master:latest dovemail /out

与 Docker 一起使用

与 Podman 一起使用 相同,但将 podman 替换为 docker

实现细节

maildir规范描述了一种生成唯一名称的流程,而dovemail并未实现。据我所知,这种与规范的偏差是无害的。您可以将这些文件重命名以符合规范,请参阅配置部分。

dovemail根据Outlook消息ID的seahash输出命名文件。

用法:pull_emails_using_dovemail.sh

pull_emails_using_dovemail.sh~/.local/share/mail中创建一个maildir组织目录,并为每个文件夹运行m365 outlook message list | dovemail ...以从Outlook检索邮件。首次运行时,下载所有邮件。后续运行时,仅下载新邮件。

配置

请自行操作。创建pull_emails_using_dovemail.sh的副本,并按您所需进行更改。

创建一个cron/systemd定时器或电子邮件客户端快捷键来运行(您的pull_emails_using_dovemail.sh副本)将非常有用。

示例:待定

这是给谁的?

大多数希望将邮件客户端与Outlook连接的用户不应使用Dovemail。应按以下顺序尝试以下方法

  1. 直接连接到Outlook IMAP/SMTP。请参阅https://support.microsoft.com/en-us/office/pop-imap-and-smtp-settings-for-outlook-com-d088b986-291d-42b8-9564-9c414e2aa040
  2. 运行Davmail网关。请参阅https://davmail.sourceforge.net/
  3. 使用m365 CLI和dovemail

只有在管理员禁用第三方应用程序的情况下,才应使用Dovemail。

这是否允许?

自行承担风险!

在管理员限制第三方应用程序的情况下,像dovemail这样的工具会被允许吗?请注意,第三方应用程序被阻止使用Outlook的API。重要的是,dovemail不使用Outlook的API。它从未连接到微软的服务器——它仅仅解析m365(一个官方的微软工具)的输出。当使用dovemail时,仅使用第一方软件与微软的服务器通信。

总的来说,dovemail与屏幕阅读器等辅助软件更相似,而不是第三方客户端。它与第一方软件(m365 CLI)接口,并以更易于访问的格式(maildir,纯文本)向用户展示数据。如果您的组织允许残疾人使用屏幕阅读器,那么没有技术理由不允许使用dovemail

计算机安全策略通常是由没有计算机知识的人,由没有计算机知识的人编写的。

限制

不支持邮件附件。

大多数dovemail的限制可以通过使用具有X-Web-Link头的Web浏览器打开电子邮件来克服。

依赖关系

~6-8MB
~146K SLoC