5个不稳定版本
0.2.1 | 2020年8月31日 |
---|---|
0.2.0 | 2020年8月31日 |
0.1.1 | 2020年8月24日 |
0.1.0 | 2020年8月23日 |
0.0.1 | 2020年8月23日 |
#201 in 电子邮件
每月21次下载
21KB
276 行
Mailgun API
异步通过Mailgun发送电子邮件
如何安装它
- 在项目的Cargo.toml文件中添加以下依赖项
mailgun_api = "0.2"
reqwest = {version = "0.10", features = ["json"]}
serde = { version = "1.0", features = ["derive"]}
serde_derive = "1.0"
serde_json = "1.0"
tokio = { version = "0.2", features = ["macros"]}
示例
use mailgun_api::MailgunApi;
use mailgun_api::api::EmailParams;
use dotenv::dotenv;
use std::env;
// Inside of you tokio implementation
dotenv().ok();
let mailgun_secret = env::var("MAILGUN_SECRET").expect("MAILGUN_SECRET must be set");
let mailgun_domain = env::var("MAILGUN_DOMAIN").expect("MAILGUN_DOMAIN must be set");
let mailgun_endpoint = env::var("MAILGUN_ENDPOINT").expect("MAILGUN_ENDPOINT must be set");
let sender = env::var("EMAIL_FROM").expect("MAIL_FROM must be set");
let receiver = env::var("EMAIL_RECEIVER_TEST").expect("EMAIL_RECEIVER_TEST must be set");
let params = EmailParams {
from: sender,
to: receiver,
subject: "test mailgung api".to_string(),
text: Some("hello this is a test".to_string()),
html: None,
};
let mut mailgun = MailgunApi::new(&mailgun_secret, &mailgun_endpoint, &mailgun_domain);
let response = mailgun.send_email::<HashMap<String, String>>(params).await;
assert_eq!(response.is_ok(), true)
如何测试它
- 创建一个.env文件并添加以下参数
MAILGUN_DOMAIN=[YOUR DOMAIN]
MAILGUN_SECRET=[YOUR MAILGUN API SECRET]
MAILGUN_ENDPOINT=[MAILGUN ENDPOINT] // There is two endpoint currently: api.mailgun.net and api.eu.mailgun.net
EMAIL_RECEIVER_TEST=[EMAIL RECEIVER TEST]
EMAIL_FROM=[SENDER TEST]
- 运行测试
cargo test
警告:在运行测试时,您会向设置的接收者发送电子邮件
关于Dtos
Dtos是用于将Mailgun API检索到的JSON转换为Rust应用程序可访问的数据的结构。由于无法看到任何指定哪些参数可为null的Mailgun文档,因此可能因为Dto属性未按Option
类型化而可能在响应中出错(如果发生这种情况,请提交一个问题),因此方法接受泛型,您需要传递提供的Dto或您的Dto
你喜欢Mailgun API吗?
如果你喜欢Mailgun API,请帮助我们支持这个项目
路线图
- 发送电子邮件
- 检索存储消息
- 域名
- IP
- 事件
- 统计
- 标签
- 抑制
- 路由
- Webhooks
- 邮件列表
- 模板
- 电子邮件验证
- 收件箱定位
许可证
Mailgun API是以MIT许可证授权的
依赖项
~6–10MB
~210K SLoC