【问题标题】:How to get "Sent" folder for gmail, yahoo and for other emails using javamail?如何使用 javamail 获取 gmail、yahoo 和其他电子邮件的“已发送”文件夹?
【发布时间】:2017-05-23 23:36:36
【问题描述】:

我在 Android 上使用 JavaMail。我想从“INBOX”和“SENT”文件夹中获取消息。所有电子邮件客户端的“INBOX”文件夹名称相同,但“SENT”文件夹名称特定于不同的客户端。如何获得“SENT”文件夹以确保它适用于所有客户。

【问题讨论】:

标签: java android jakarta-mail


【解决方案1】:

有一个IMAP standard for this,但没有得到广泛实施。缺少这一点,您需要向用户询问已发送邮箱的名称,或者您需要包含一些尝试通过检查普通邮件使用的名称来定位它的启发式方法。

【讨论】:

  • 感谢您的回复,但我知道没有人使用 Imaps 标准。
【解决方案2】:

经过多次研究,我找到了我认为应该适用于所有邮件客户端的解决方案。 这个例子展示了如何通过属性获取发送的文件夹。

for (Folder folder : folderList) {
            String[] attributes = ((IMAPFolder) folder).getAttributes();
            for (String attr : attributes) {
                if (attr.toLowerCase().contains("sent"))
                    return folder;
            }
        }

【讨论】:

  • 这是我上面提到的那种启发式方法,如果文件夹名称本地化为另一种语言,它将不起作用。它还会对名为(例如)缺席、同意、同意、出席、重新发送等的文件夹产生误报。
猜你喜欢
  • 2012-07-06
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 2014-11-30
  • 2011-08-21
  • 1970-01-01
相关资源
最近更新 更多