1. Email添加自动回复功能需要注意事项
- Email可能存在多个账户, 因此自动回复功能应该添加在账户设置里面, 自动回复针对一个账户单独处理
- 在Email账户设置里面, 开启自动回复功能的时, 需要保存设置的时间(时间戳, 是否需要考虑时区等影响), 账户ID, 自动回复的内容(自动回复的内容, 由用户编辑, 内置默认回复), 开启状态
- 自动回复功能的设置数据, 通过Email账户的EmailAddress获取
2. Email自动回复功能注意事项
- 监听Email数据库中MESSAGE表的数据(邮件)变化
- 判断邮件的mailboxKey的类型是否是INBOX
- 判断邮件的accountKey是否是开启自动回复功能的账户
- 判断邮件的timeStamp是否晚于开启自动回复功能的时间
- 判断该邮件的接收者是否已经自动回复
- 通过 subject 判断是否有 Re:subject 数据. 如果有则说明已经自动回复, 如果没有则说明没有自动回复. 该种方式不可靠
- 在MESSAGE添加replyMessageId字段, INBOX类型的邮件存储自动回复邮件的ID, 自动回复邮件存储被自动回复邮件的ID. 工作量比较大, 改动较多
- 如果INBOX数据有抄送(cc), 或者暗抄送(bcc), 自动回复数据是否添加?
- 自动回复数据是否携带引用(quote), 如果接收的邮件有附件怎么处理?
- 在删除Email账户的时候需要删除保存的自动回复相关信息
3. Email自动回复功能添加到什么地方?
- EmailProvider的insert方法. 方便简单
- 同步数据成功, 执行插入MESSAGE表的位置, 需要监听数据库发生改变. 目前没有找到该位置在什么地方, 牵涉到Android系统的同步机制
4. Email自动回复功能采用什么方式实现?
- 硬编码到EmailProvider的insert方法处. 不可取
- 在EmailProvider的insert方法处, 采用IntentService
05-15 15:25