#api #sendgrid #smtp #send-email #builder-pattern #api-bindings

sendgrid-rs

围绕 SendGrid 邮件 API 的“无电池包含”,“无假设”的包装器

2 个版本

0.1.1 2019 年 1 月 28 日
0.1.0 2019 年 1 月 28 日

#276电子邮件

MIT/Apache

45KB
547 代码行

sendgrid-rs

SendGrid 的 v3 JSON API 的包装器 crate

使用构建器模式构建调用 SendGrid 的 v3 API 所需的正确 JSON。这个 crate 是一个 WIP,但目前包括发送电子邮件请求所需的一切。


lib.rs:

这个 crate 是一个包装器,使用构建器模式构建发送的负载,围绕 SendGrid 的 v3 API。这个 crate 没有包含电池,不执行任何验证,并且不假设 SendGrid API 文档中未指定的任何内容。要实际调用 API,您必须使用其他机制(如 reqwest crate)进行 HTTP 连接。

所有内容都来自 Message,您可以使用 MessageBuilder 来构建。完成 MessageBuilder 调用 build() 以获取底层的 Message,以及 to_json() 以获取整个 Message 输出作为 JSON 字符串。

示例

let api_payload = MessageBuilder::new(
    ContactBuilder::new("[email protected]").name("from").build(),
    "Subject Line!",
)
.template_id("SENDGRID-TEMPLATE-ID")
// Don't Actually send email. If you want to really send the email, delete the line below
.mail_settings(MailSettingsBuilder::default().sandbox_mode().build())
.personalization(
    PersonalizationBuilder::default()
        .to(ContactBuilder::new("[email protected]").name("to").build())
        .build(),
)
.build()
.to_json();

依赖关系

~0.7–1.5MB
~34K SLoC