#service-account #testing #ethereal

bin+lib mail-test-account

创建/加载/存储用于测试目的的电子邮件帐户:(目前使用 ethereal.mail)

1 个不稳定版本

0.1.1 2019 年 3 月 4 日

#265电子邮件

每月 21 次下载
用于 pushpop

MIT/Apache

21KB
362

mail-test-account  

文档可以在 docs.rs 上查看。

一个用于加载/存储和创建新的邮件测试帐户的库。这些帐户将用于提供邮件提交代理 (MSA) 的服务器/服务,该代理接受邮件但从不投递,并且您可以通过它访问邮件。

目前使用 ethereal.mail 作为创建新帐户的服务。

在创建帐户之前,库尝试从配置目录(使用 xdg 目录规范)加载帐户信息。默认帐户存储和加载的 test_account_info() 函数存储在 ~/.config/mail-test-account/test_account.json。如果使用不同的标记,则文件名将更改(默认标记为 test_account)。可以通过与更改 xdg 配置目录相同的方式更改配置目录(例如,使用 XDG_CONFIG_HOME 环境变量)。

目标

此包可以以三种方式使用

  1. 作为库(预期用途)。
  2. 作为命令行工具(使用 cargo run --features="clap"),输出格式化的 JSON。
  3. 运行 README 示例(使用 cargo run --example readme),输出格式化供人类消费的信息。

示例

您可以使用 cargo run --example readme 运行以下示例。

use mail_test_account::test_account_info;

fn main() {
    let info = test_account_info().unwrap();

    println!("ACCOUNT/CREDENTIALS");
    println!(" username: {}", info.account.username);
    println!(" password: {}", info.account.password);


    if let Some(smtp) = info.smtp {
        println!("SMTP");
        println!(" host: {}", smtp.host);
        println!(" port: {}", smtp.port);
        if smtp.use_tls_directly {
            println!(" use non standard direct TLS instead of STARTTLS");
        } else {
            println!(" use STARTTLS");
        }
    }

    if let Some(imap) = info.imap {
        println!("IMAP");
        println!(" host: {}", imap.host);
        println!(" port: {}", imap.port);
    }

    if let Some(pop3) = info.pop3 {
        println!("POP3");
        println!(" host: {}", pop3.host);
        println!(" port: {}", pop3.port);
    }

    if let Some(web) = info.web {
        println!("WEBSITE");
        println!(" uri: {}", web.uri);
    }
}

输出类似以下内容

ACCOUNT/CREDENTIALS
 username: ----@ethereal.email
 password: -------------------
SMTP
 host: smtp.ethereal.email
 port: 587
 use STARTTLS
IMAP
 host: imap.ethereal.email
 port: 993
POP3
 host: pop3.ethereal.email
 port: 995
WEBSITE
 uri: https://ethereal.email

许可

根据您的选择,许可协议为

贡献

除非您明确说明,否则根据Apache-2.0许可证定义,您有意提交以包含在工作中的任何贡献,都将双授权如上,不附加任何额外条款或条件。

依赖项

~19MB
~425K SLoC