我正在构建一个分析Gmail特定文件夹的工具(例如“[Gmail] /所有邮件”,“[Gmail] /垃圾邮件”)。似乎这些名称是针对用户本地化设置进行本地化的,因此“[Gmail] /所有邮件”会向西班牙用户显示为“[Gmail] / Todos”。
gmail文件夹是否有非本地化的规范名称?一种检测它的方法?或者在最坏的情况下,列出可能的本地化名称。
答案 0 :(得分:14)
2016年6月更新
请记住Gmail IMAP was deprecated in 2013中的XLIST
,最终会被删除。
您需要使用SPECIAL-USE mailboxes代替。
很遗憾,Gmail并未根据规范宣传此功能,但它已实施且工作正常(在09/09/2016测试) - 请注意\ Trash标记:
C: 55535a988a074191 LIST "" * RETURN (SPECIAL-USE)
S: ...
S: * LIST (\HasNoChildren \Trash) "/" "[Gmail]/Bin"
常规LIST也会返回相同的响应(我会说这是Gmail的错误)。
原始答案
有一种更好的方法: XLIST 命令。
Google和Apple开发了一个特殊的IMAP命令XLIST来解决这个问题。
IMAP XLIST命令返回文件夹及其众所周知的标记列表(\ Inbox,\ Drafts,\ Trash,\ Sent,\ Spam):
* XLIST (\HasNoChildren \Inbox) "/" "Inbox"
Mail.dll IMAP client(我创建的商业产品)支持XLIST命令。当服务器宣传支持此功能时,它会自动使用。您可以在此处阅读更多内容:https://www.limilabs.com/blog/localized-gmail-imap-folders/
答案 1 :(得分:5)
This user script有一个非常不完整的列表,上面有很多问号:
Android的Email回购在res/values-xx/strings.xml
下有更多。它出现在谷歌搜索一些Gmail的字符串,所以它有可能工作。它们可能不一定与Gmail的字符串匹配,因此需要注意 - 例如,它不具有“所有邮件”,因为它适用于通用电子邮件客户端。
答案 2 :(得分:4)
今天收到了这个答案,发现Gmail中的XLIST
现在是deprecated。目前的解决方案是IMAP LIST Extension for Special-Use Mailboxes,Gmail支持该解决方案。
希伯来语邮箱的LIST输出示例:
'(\\Noselect \\HasChildren) "/" "[Gmail]"',
'(\\HasNoChildren \\Trash) "/" "[Gmail]/&BdAF6QXkBdQ-"',
'(\\HasNoChildren \\Sent) "/" "[Gmail]/&BdMF1QXQBeg- &BdkF1QXmBdA-"',
'(\\HasNoChildren \\Important) "/" "[Gmail]/&BdcF6QXVBdE-"',
'(\\HasNoChildren \\Drafts) "/" "[Gmail]/&BdgF2QXVBdgF1QXq-"',
'(\\HasNoChildren \\All) "/" "[Gmail]/&BdsF3A- &BdQF0wXVBdAF6A-"',
'(\\HasNoChildren \\Flagged) "/" "[Gmail]/&Bd4F4QXVBd4F3w- &BdEF2wXVBdsF0Q-"',
'(\\HasNoChildren \\Junk) "/" "[Gmail]/&BeEF5AXQBd0-"',
答案 3 :(得分:0)
Cyrus IMAPd也支持版本2.4中的XLIST命令(带有相当狡猾的黑客攻击),Thunderbird客户端也是如此。
事实上,我正在扩展Cyrus以更灵活地支持XLIST,因此您在配置文件中没有硬编码的文件夹名称集。所需更改的复杂性意味着它可能在我们碰到版本2.5之前不会发布。