也许这是一个虚拟问题并且存在更好的方法,但我想知道是否有可能使用服务器端脚本捕获传入电子邮件的事件,并且在该脚本内部将是外部 DLL 调用或连接到数据库并写入一些元数据的脚本来自传入消息(与外部 DLL 相同)?
场景可能是:
- 邮件从发件人发送到 hMailServer
- 一些触发器开始
- 外部 DLL 中的触发调用函数将解析电子邮件正文 a 将有关收件人、主题、消息 perex 和附件计数的数据写入特殊数据库表以用于快速列表和电子邮件通知目的,该表可能与 hmailserver 位于同一数据库中
- 让消息被传递
目标:获得有关所有电子邮件的即时信息,其中包含发件人、收件人、主题、消息 perex(前 100 个字符)、附件标志和读取标志,可通过 SQL 查询访问,而无需连接到 IMAP 或 PO3。因此,使用一个 SQL 查询,我可以获得所有帐户的所有通知并通过 signalR 发送它们。
我意识到在 hmailserver 的 MS SQL 数据库中是名为 hm_messages 的表,它在电子邮件到达时自动填充,但不包含主题,主要没有发件人,绝对没有正文和附件计数。该表中的行仅包含有关 *.eml 文件的帐户、文件夹、标志、日期和名称的信息。我可以使用 SQLCLR 函数编写一个触发器,该函数可以执行与上述相同的操作,但即使我有 *.eml 文件名,我也没有它在硬盘驱动器上的实际位置。所以我回到第一方。
否则我必须在一个时间循环中从所有帐户下载消息,这会窃取我的服务器 CPU 和内存,尤其是在其中有大约 60 个电子邮件帐户和数千条消息并且必须对其进行迭代的情况下。