1. 读取邮件不能用smtp协议,应该用IMAP或者POP3等,这个网上可以搜代码,有很多,不过写法都一致的:session+store。
2. move邮件好像没直接的方法,得先copy再set flag,有点坑。假如将关闭folder放在finally中,try时有一大堆逻辑,那么一段时间内就可能会看到from folder和to folder中有两封相同的邮件,所以我一般在try中可以关闭时就close folder了。
3. 在获取邮件唯一id时,有uid和messgeid两种,不过用Messageid时出现点让我迷惑的小问题(出现了两次获取邮件id不一致的情况,不过不应该出现这个才对),所以改用了uid。
4. 生产环境的邮箱用的是common/share emailbox([email protected]),也就是授权给不同账号可以读取这个emailbox,但是不同账号是有对应的默认邮箱([email protected]),那怎么配置才能通过a账号读取到common emailbox呢。可以这样设置username(domain\username(such as: a)\common)。
5. 同一个邮箱用的smtp服务器和imap服务器可能不同。例如:common邮箱发邮件时请求smtpserver1去发邮件,但是邮件存在imapserver1上。