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