相对完美解决Lumisoft POP3 重复 接收 邮件问题
问题的关键是Mail_Message的UID在当前会话中唯一且不变,在多次会话中唯一但会变化
所以无法从本地验证服务器端的某封邮件是否已接收过
那使用最后收取时间似乎可以解决问题,但这带来的另一个问题是,Messages需要按Date排序,如果无序则需先排序,并且Date可能重复,几率还是不小
最后解决方法是使用MD5加密(邮箱帐户(abc@abc.com) + 邮件标题+邮件接收时间)后的结果作为唯一不变标识
原理就是邮箱帐户不会变,邮件标题不会变,服务器端的邮件接收时间不会变,加密过程不会变,那结果也不会变,说白了就是一个"联合主键"的道理~
1 2 3 4 5 6 7 8 | <s> static MD5CryptoServiceProvider md5; public static string MD5String( string ConvertString) { if ( null == md5) md5 = new MD5CryptoServiceProvider(); string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.Default.GetBytes(ConvertString))); Log.Information(t2); return t2.Replace( "-" , "" ); } </s> |
官方相关示例下载http://www.lumisoft.ee/lswww/download/downloads/Examples/
后补,UID是全局唯一的,我上边说错了!多次会话也是唯一的,希望我没有误导到别人,真惭愧!!
把UID这块描述拿出来了~有雅兴的客观可以瞧瞧
http://www.ietf.org/rfc/rfc1939.txt
The unique-id of a message is an arbitrary server-determined string , consisting of one to 70 characters in the range 0x21 to 0x7E, which uniquely identifies a message within a maildrop and which persists across sessions. This persistence is required even if a session ends without entering the UPDATE state. The server should never reuse an unique-id in a given maildrop, for as long as the entity using the unique-id exists. |
------------------------------------------
除非特别声明,文章均为原创,版权与博客园共有,转载请保留出处
BUY ME COFFEE


【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架