2 个版本

0.1.1 2020 年 7 月 15 日
0.1.0 2020 年 7 月 6 日

49#send-message

Download history 7/week @ 2024-03-17 7/week @ 2024-03-24 82/week @ 2024-03-31 25/week @ 2024-04-07 2/week @ 2024-04-14 3/week @ 2024-05-05 14/week @ 2024-05-12 53/week @ 2024-05-19 11/week @ 2024-06-02 31/week @ 2024-06-09 35/week @ 2024-06-16 18/week @ 2024-06-23

每月 85 次下载

MIT 许可证

52KB
858

mailgun-rs

用 Rust 编写的 MailGun API 客户端。

此包帮助简化与 MailGun API 的交互。您需要提供 API 密钥域名

API 参考

使用方法

发送消息

use mailgun_sdk::{
    Client,
    ParamList,
    send_message::{SendMessageParam, SendMessageParamList},
};

let client = Client::new("ApiKey", "Domain");

let params = SendMessageParamList::default()
    .add(SendMessageParam::To("[email protected]"))
    .add(SendMessageParam::From("[email protected]"))
    .add(SendMessageParam::Subject("Test Message"))
    .add(SendMessageParam::Html(r#"<html>
        <body>
            <h1>Test Message</h1>
        </body>
    </html>"#));

if let Err(error) = client.send_message(params) {
    eprintln!("Error: {:?}", error);
}

此包不强制执行发送消息的规则。然而,在发送消息时,您几乎总是需要设置以下内容

  • 主题
  • 收件人
  • 发件人
  • Html 和/或 Text

注意:并非所有发送消息的请求参数都已测试。如果您发现任何不起作用的参数,请随时创建工单或创建拉取请求。

分页

对于返回结果列表的 API 调用,MailGun 返回一个 分页 结构。分页字段都是 URL。您可以使用 调用 方法获取这些页面,而不是解析这些页面。

let mut response = client.get_bounces(GetBouncesParamList::default()).unwrap();
let mut bounces = response.items;

if bounces.len() > 0 {
    loop {
        response = client.call(&response.paging.next).unwrap();

        if response.items.len() == 0 {
            break;
        } else {
            bounces.append(&mut response.items);
        }
    }
}

更多示例

let client = Client::new("ApiKey", "Domain");

// Get all events.
let events = client.get_events(GetEventsParamList::default()).unwrap();

// Get all bounces.
let bounces = client.get_bounces(GetBouncesParamList::default()).unwrap();

// Get account stats.
let stats = client.get_stats(GetStatsParamList::default()).unwrap();

测试

在开始测试之前,您需要在项目的根目录中创建一个 .test.env 文件。

touch ./.test.env

文件应包含以下设置

MAILGUN_API_KEY=''
MAILGUN_DOMAIN=''

依赖关系

~2.3–3.5MB
~94K SLoC