如何使用Java邮件在Gmail中永久删除电子邮件(POP3客户端和IMAP)
我一直在使用java邮件(POP3客户端& IMAP)来自动执行Gmail操作。其中一个操作是删除邮件和我使用下面的代码 -如何使用Java邮件在Gmail中永久删除电子邮件(POP3客户端和IMAP)
public void deleteInboxMasseges() throws IOException, MessagingException
{
store = getConnection(EMAIL_USERNAME, EMAIL_PASSWORD);
if (store != null)
{
int inboxMassegeCount = inbox.getMessageCount();
Message[] messages = inbox.getMessages();
for (int i = 0; i < inboxMassegeCount; i++)
{
messages[i].setFlag(Flags.Flag.DELETED, true);
}
inbox.expunge();
}
}
邮件来自“收件箱”,但其只不是“垃圾”删除了“所有邮件”文件夹。我想永久删除它。是否有任何直接删除邮件的方式,而不是从“收件箱”中删除邮件?
不幸的是,这是一个多步骤的过程,需要使用IMAP而不是POP完成。要永久删除GMail中的某些内容,您需要将其移至垃圾箱,然后将其从垃圾箱中删除。它支持MOVE扩展,所以这不是太糟糕。您还必须发现垃圾桶文件夹名称,可能使用LIST,因为它是本地化的。
a001 UID MOVE xxx "[Gmail]/Trash"
* OK [MOVEUID xxxxxxx yyy] Message moved
a002 SELECT "[Gmail]/Trash"
a003 UID STORE yyy +FLAGS (\Deleted)
a004 UID EXPUNGE yyy
然后它就会真正消失。
对于大多数用户来说,将它移动到垃圾箱就足够了。它将在稍后自行消失。
可能您会在您的Gmail帐户设置中解决此问题。
的Gmail具有设置页下面的选项,转发和POP/IMP标签:
当被删除,而从最后IMAP资料夹删除标记的消息:
- 存档消息(默认)
- 将消息移至垃圾箱
- Immed亲爱的删除邮件永远
尝试在您的帐户中设置最后一个选项(立即删除邮件永远)并再次运行您的代码。
祝你好运。
以我的经验,尽管有措辞,但这种设置实际上并没有改变任何东西。 – Max
@达尼洛感谢您宝贵的建议,我试过这个,但它不工作。 –
** @ Max **感谢您的意见。我们尝试根据您的输入对其工作正常。贝娄我们尝试的场景1.首先,我们将邮件从**收件箱**移至**垃圾箱**,2.将邮件从**所有邮件**移至**垃圾箱**,最后我们将邮件从* *垃圾箱**文件夹。现在它工作正常。 –
@Max你可以分享代码片段吗? 我似乎在做你所描述的......但我的信息留在垃圾箱里。 – klubi