热烈庆祝DeepFlood正式启用!在此献上本站的第一篇AI应用相关的教程。
最近我给自己的邮件服务器添加了一个功能,可以给收到的邮件自动添加AI智能总结,这里简单做个分享,如果有需要的小伙伴们欢迎自行取用。
项目地址:https://github.com/Har-Kuun/mail-summarizer-stalwart
1. 邮件内容AI自动总结的服务器端实现方式
在服务器端实现邮件内容的AI自动总结其实并不困难。众所周知,SMTP入信流程分为下面的几个阶段:Connection, EHLO, AUTH, MAIL FROM, RCPT TO, DATA 以及最后的投递。其中,邮件的正文内容是在DATA阶段进行传递的。因此,我们只需要在DATA阶段截住入信,将内容请求API获得总结,并且将生成的AI总结添加到邮件正文内容的头部即可。
下面是示例。

对于传统的邮件服务器,比如基于Sendmail或者Postfix的各类邮件服务器,邮件正文内容的修改可以通过Milter协议实现。这里贴一个基于Python的Milter库,如果读者感兴趣,可以自行实现这个功能。https://pymilter.org/
如果您和我一样使用的是Stalwart Mail Server, 那么Stalwart提供了基于HTTP协议的MTA Hook功能,可以更方便地实现DATA stage的内容修改。Stalwart Mail Server是我最推荐的适合个人和团队部署的邮件服务器系统;如果您也想尝试, 可以参考我的部署教程。
2. 具体的实现与使用方法
这里,我直接用最简单的PHP写了一个MTA Hook, 实现了邮件自动添加AI总结,具体的代码我就不贴出来了,您可以去我的Github查看,也欢迎星星叉叉。(https://github.com/Har-Kuun/mail-summary-stalwart) 使用之前请填入您自己的API, 并且按照自己的需求修改提示词(比如,如果您需要生成中文的总结,就需要相应地修改提示词)。
如果您需要自行用其他语言实现,需要注意的有以下几点。
(1) 入信与出信的区分。对于MTA来说,本身并不能直接区分邮件是收信还是入信。显然,我们不希望给发出去的邮件添加自动AI总结,因此需要在MTA Hook中判断待处理的邮件是收信还是入信。判断的方式很多,比如收信地址、发信IP、验证信息等等。
(2) Plain Text与HTML邮件的区分。收到的邮件可能是基于Plain Text的,也可能是基于HTML的,需要使用不同的方式添加生成的AI总结。
写好MTA Hook之后,直接在Stalwart中接入,就完成了这个全自动的收信AI智能总结啦。

博客原文链接:https://qing.su/article/automated-email-content-summary-stalwart.html
如果觉得有意思的话可以帮帮点个鸡腿或者收藏,感谢

@shc #0
我来补鸡腿了
楼主,我来报恩了
哇我刚发完帖子问(虽然有点水)但是大佬牛
支持
好帖好帖,楼主鸡腿先欠着(忙着升二级,回头一定补上
先收藏了
好贴
感谢支持
感谢感谢
谢谢分享
好贴
好,收藏了
捞一捞