4 个版本
使用旧Rust 2015
0.3.0 | 2020年6月6日 |
---|---|
0.2.2 | 2019年3月26日 |
0.2.1 | 2019年3月4日 |
0.2.0 | 2018年11月23日 |
#141 in 邮件
用于 2 crates
28KB
450 行
mail-smtp
允许通过 new-tokio-smtp
发送 mail-core
Mail
的邮件
该库将 new-tokio-smtp
和 mail
库绑定在一起。
它可以用来发送作为 Mail
实例的邮件给邮件提交代理(MSA)。理论上也可以发送到MX,但这通常需要额外的功能来实现可靠的使用,而这些功能并不包含在这个库中。
为了方便使用,这个库重新导出了 new-tokio-smtp
中的一些常用部分,包括 ConnectionConfig
、ConnectionBuilder
、所有认证命令/方法(auth
模块)以及有用的类型(在 misc
模块中)。
send_mails
函数是发送一批邮件的最简单方式。然而,它不接受 Mail
实例,而是接受 MailRequest
实例。这是必要的,因为通过 Mail
头部指定的发送者/收件人和用于smtp邮件投递的发送者/收件人可能并不完全相同(例如,对于退回邮件和一些不回复设置)。
示例
extern crate futures;
//if you use the mail facade use the re-exports from it instead
extern crate mail_core;
extern crate mail_smtp;
#[macro_use] extern crate mail_headers;
use futures::Future;
use mail_headers::*;
use mail_headers::components::Domain;
use mail_core::{Mail, default_impl::simple_context};
use mail_smtp::{send_mails, ConnectionConfig};
fn main() {
// this is normally done _once per application instance_
// and then stored in e.g. a lazy_static. Also `Domain`
// will implement `FromStr` in the future.
let ctx = simple_context::new(
Domain::from_unchecked("example.com".to_owned(),
// This should be "world" unique for the given domain
// to assure message and content ids are world unique.
"asdkds".parse().unwrap()
).unwrap();
let mut mail = Mail::plain_text("Some body").unwrap();
mail.set_headers(headers! {
_From: ["[email protected]"],
_To: ["[email protected]"],
Subject: "Some Mail"
}.unwrap()).unwrap();
// don't use unencrypted con for anything but testing and
// simplified examples
let con_config = ConnectionConfig::build_local_unencrypted().build();
let fut = send_mails(con_config, vec![mail.into()], ctx);
let results = fut.wait();
}
文档
文档可以在 docs.rs 上查看。(一旦发布)
许可证
根据以下任一许可证授权:
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由您选择。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义,您有意提交给作品并由您包含的所有贡献,将根据上述内容双授权,不附加任何额外条款或条件。
依赖项
~9–19MB
~268K SLoC