1个版本 (0个不稳定版本)
1.4.0-rc.10 | 2023年1月3日 |
---|
#350 在 电子邮件
67KB
708 行
什么是vSMTP ?
vSMTP是一个下一代 邮件传输代理 (MTA),更快、更安全、更环保。
- 它是100%使用 Rust 开发的。
- 它非常快。
- 它是模块化的,并且高度可定制。
- 它有一个完整的过滤系统。
- 它正在积极开发和维护。
更快、更安全、更环保
随着优化IT资源成为越来越大的挑战,计算机攻击仍然是一个持续的问题。
每天,全球有超过3000亿封电子邮件被发送和接收。数十亿个附件被处理、分析和投递,这导致了温室气体排放的增加。
为了应对这些挑战,viridIT正在开发一种新的电子邮件网关技术,也称为vSMTP。
请访问 viridit.com 关注我们
过滤
vSMTP允许您使用基于 vSMTP的脚本语言(vsl) 和 Rhai 创建复杂的规则集,以过滤您的电子邮件。您可以将
- 检查/修改传入电子邮件的内容。
- 转发和本地或远程投递电子邮件。
- 连接到数据库。
- 运行命令。
- 隔离电子邮件。
等等。
// -- /etc/vsmtp/service/database.vsl
// vSMTP can be extended with plugins.
import "plugins/vsmtp_plugin_mysql" as mysql;
// Here we declare a service.
// Let's connect to a mysql database.
export const database = mysql::connect(#{
// the url to connect to the database.
url: "mysql://127.0.0.1/?user=greylist-manager&password=my-password"",
timeout: "30s",
connections: 4,
});
// -- /etc/vsmtp/filter.vsl
// Here we declare our rules for filtering.
import "service/database" as db;
#{
// hook on the 'mail from' stage. (when the server receives the `MAIL FROM:` command)
mail: [
rule "greylist" || {
let sender = ctx::mail_from();
// is the user in our greylist ?
if db::greylist.query(`SELECT * FROM greylist.sender WHERE address = '${sender}';`).is_empty() {
// it does not, we add the address to the database, then deny the email.
db::greylist.query(`
INSERT INTO greylist.sender (user, domain, address)
values ("${sender.local_part}", "${sender.domain}", "${sender}");
`);
// close the connection with a built in "451 - 4.7.1" error code.
state::deny(code::c451_7_1())
} else {
// it is, we accept the email.
state::accept()
}
}
],
}
查看 api 文件夹,了解您可以使用vsl做什么。
基准测试
在运行AMD Ryzen 5 5600X 6核处理器的Ubuntu 22.04 LTS上进行的Postfix 3.6.4与vSMTP 1.0.1性能比较。
查看 基准测试readme 以获取可重复的示例。
文档
在此存储库中,"develop" 分支是我们每天工作的分支,以提供新功能。如果您想查看最新vSMTP版本的示例,请切换到"main"分支,我们的最新版本在那里发布。
有关文档,请查阅 vBook,这是vSMTP的在线参考和用户指南。"develop" 分支的文档也在vBook的 https://vsmtp.rs/next 中提供。
要关注最新动态、提问并获得深入回答,请加入我们的 Discord 服务器。您也可以在GitHub 讨论 中打开。
路线图
下一个版本 "1.4.x" 专注于 vSMTP 的插件开发。您可以在 里程碑 中找到更多关于项目计划的信息。
在 变更日志 中查看更新历史。
有关贡献 vSMTP 的指南可在 贡献 部分找到。
商业
我们可以提供从设计到物理实施的一系列服务,提供维护并开发特定功能以及专用的 API 来满足您的业务需求。
有关商业、许可等方面的问题,您可以通过我们的网站 联系我们 或向 contact@viridit.com
发送消息。
许可
vSMTP 的标准版是免费的,并受开源许可协议保护。
它按常规提供,不提供任何保证。有关更多信息,请参阅 许可。
依赖项
~36–72MB
~1M SLoC