我即将将IMAP 电子邮件集成添加到我们的一个 Web 应用程序(ASP.NET / SQL Server)中。我已经在使用一个商业库,它公开了最重要的 IMAP 功能:获取文件夹列表、获取消息标题、获取 mime 消息等)
从 IMAP 服务器“实时”获取电子邮件数据效果很好。但是困难的任务来了:我必须保持缓存 SQL 数据库的电子邮件/文件夹与 IMAP 服务器同步(我必须显示应用不同标准的数据)。
我们的数据库模式本质上包含一个“文件夹”和一个“电子邮件”表。“电子邮件”表主要包含标题信息,如“FromAddress”、“FromName”、“IsRead”、“IsAnswered”、“IsForwarded”、“HasAttachments”等(不包括电子邮件内容或附件)。
我必须考虑两种主要情况:
- 第一次(或在用户重新组织文件夹后)获取所有消息
- 获取新的/最近的消息
考虑到性能是一个主要的设计标准(我不能每次连接时都查询/比较数千条消息,以便找到如果用户移动或删除了一些旧电子邮件,则退出)。
谢谢!