本期每周一库来介绍一个和发送邮件相关的库,库的名字使用了法语的信笺(lettre
)作为名字。
发送邮件是现在Web App常见的功能。常用于通过收发验证码来验证账号或者执行账号高权限操作的时候,例如抗击羊毛党的注册,修改密码的二次验证等;还可以作为订阅广告推送给用户定时发送订阅内容。
那么这时候发送邮件的功能就必不可少了,虽然现在有很多的serverless方案中集成了邮件验证,手机验证等。但是对于小型项目,集成的serverless身份验证全家桶开发方案会显得杀鸡用牛刀。另外一方面,天下没有免费的云,发送邮件的费用也是一笔不小的开支。拿大名鼎鼎的MailChimp举例,想要给用户发送推广邮件,需要购买昂贵的点数来付费。
说到这里,我们步入正题,用Rust实现邮件发送功能!
lettre的Github:lettre is a mailer library for Rust.
lettre的网站:lettre.at
Github上对库的特性进行了简单的说明:
多种传输方式
支持Unicode
使用了SMTP安全传输
易于使用
lettre的文档十分简单,介绍了lettre的功能,模块,结构,枚举等
接下来我们基于lettre实现一个简单的邮件发送程序
开发环境是Windows 10
cargo脚手架
使用的邮件账户是Gmail账户。
使用Gmail邮箱账户发送邮件的时候需要注意两点
确保Gmail账户已经开启了多重验证
生成应用专用密码用于程序中登陆Gmail账号的密码
之所以要使用应用专用密码