关于 Gmail 标签 - 从技术上讲,它们是什么。我的意思是通过 imap 连接我可以访问 gmail 邮箱并浏览电子邮件,但是假设我希望创建一个标签并将其附加到电子邮件中,因为我使用代码循环浏览它们 - 我如何在代码中做到这一点?我正在使用 php - 和 Zend 框架。
编辑 ===
感谢您的回复,所以现在很清楚标签在这方面被视为文件夹,但是我已经尝试过 Zend_Mail_Storage_Imap 类函数,结果很有趣。如果我尝试 Zend_Mail_Storage_Imap:moveMessage 函数 - 它会从任何地方删除消息,并在字面上附加一个标签,这意味着如果我希望将标签 foo 附加到我的消息,它将从收件箱中删除它并附加标签 foo。但是,如果我使用 Zend_Mail_Storage_Imap::copyMessage 就可以了。
但是,我在这里想知道,这是否真的会复制该消息,而您最终会在这里收到不止一条重复消息?
另外,如果我需要选择附加有特定标签的所有邮件,或者在这种情况下位于某个文件夹中的所有邮件怎么办?
最佳答案
回复:关于 Gmail 标签 - 从技术上讲,它们是什么。
由于 IMAP 没有“标签”的概念,GMail“标签”和 IMAP“文件夹”之间或多或少有一个映射,Here 是我在上面找到的最好的文档。但真正帮助我创建与 GMail 的程序化 IMAP 交互的是实验。
例如,预设标签的 IMAP 文件夹名称为
Human name -- IMAP Folder name
Drafts -- [Gmail]/Drafts
Sent Mail -- [Gmail]/Sent Mail
Spam -- [Gmail]/Spam
Starred -- [Gmail]/Starred
Trash -- [Gmail]/Trash
添加 -
Re:创建标签,并在我使用代码循环遍历电子邮件时将其附加到电子邮件-如何在代码中做到这一点?
要创建标签,请使用 Imap 的“创建文件夹”操作。
使用 Imap 复制操作为消息添加标签。
要从 GMail 收件箱中删除邮件,我 90% 确定您添加了 IMAP 标志“已删除”。 -- 但请先试验一下。我不清楚设置删除标志时删除了哪些标签。在我的测试中,当我应用已删除标志时,邮件只有 1 个标签(收件箱)。
这是我用于将 GMail 邮件从收件箱移动到垃圾箱文件夹的代码:
# Ruby code...
imap.store(message_id, "+FLAGS", [:Deleted]) # rm inbox label
imap.copy(message_id, "[Gmail]/Trash") # add trash label
关于php - 使用代码通过 IMAP 将标签附加到 Gmail 中的邮件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2455266/