#通知 #API 绑定 #tuta #tutanota

tuta_poll

tuta 库用于获取新邮件、解密它们并将它们标记为已读

1 个不稳定版本

0.1.0 2023年12月18日

#234WebSocket

GPL-3.0-only

58KB
1.5K SLoC

tuta_poll

一个小型库,用于从 tutanota 查询邮件,并可能解密发件人姓名、主题和正文,并将它们标记为已读。

概述

该库提供了一种高级客户端,可以选择连接到 WebSocket 来监听新消息,以及未记录的 tuta api 的包装器。该库还可以解密发件人姓名、主题和消息正文。

使用方法

配置和客户端

let config = tuta_poll::config::Account {
    "[email protected]",
    "some_password",
    watch_spam: true,
    show_name: true,
    show_subject: true,
    show_body: true,
};

let client = tuta_poll::client::Client::new(&config).await?;

获取消息

use futures_util::pin_mut;
use futures_util::StreamExt;

let mails = client.get_mails();
pin_mut!(mails);
while let Some(mail) = mails.next().await {
    let mut mail = mail?;
    let decrypted_mail = client.decrypt(&mail).await;
}

连接到 WebSocket

let connector = client.get_websocket_connector()?;

loop {
    let mut socket = connector.connect()?;
    while let Ok(has_new) = socket.has_new().await {
        if !has_new {
            continue;
        }
        let mails = client.get_mails();
    }
}

示例

请参阅 examples/ 文件夹中的两个完整示例。

依赖关系

~10–24MB
~400K SLoC