首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Java邮件(POP3 Client & IMAP)永久删除Gmail中的电子邮件

如何使用Java邮件(POP3 Client & IMAP)永久删除Gmail中的电子邮件
EN

Stack Overflow用户
提问于 2017-06-12 11:05:44
回答 3查看 2.2K关注 0票数 4

我一直在使用java邮件(POP3 client & IMAP)来自动化Gmail操作。其中一个操作是删除邮件,我使用以下代码-

代码语言:javascript
运行
复制
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();
        }
    }

该邮件已从“收件箱”中删除,但它仅在"All Mail“文件夹中可用,仅在”“文件夹中可用。我想永久删除它。是否有任何直接的方式来永久删除邮件而不是删除“收件箱”中的邮件?

EN

回答 3

Stack Overflow用户

发布于 2017-06-12 14:33:59

不幸的是,这是一个多步骤的过程,需要使用IMAP,而不是POP。要从GMail中永久删除某些内容,似乎需要将其移到垃圾中,然后从垃圾中删除。它支持移动扩展,所以这并不是太糟糕。您还必须发现垃圾文件夹名(可能使用LIST ),因为它是本地化的。

代码语言:javascript
运行
复制
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

然后它就会真的消失了。

对于大多数用户来说,把它移到垃圾堆里就足够了。它稍后会自己消失。

票数 4
EN

Stack Overflow用户

发布于 2017-06-12 13:20:42

您可能会在Gmail帐户设置中解决此问题。

Gmail在设置页、转发和POP/IMP选项卡上有以下选项:

当邮件标记为已删除并从最后一个可见的IMAP文件夹中删除时,

  • 存档消息(默认)
  • 将消息移到垃圾中
  • 立即永久删除该消息

尝试在您的帐户中设置最后一个选项(立即永远删除消息),然后再次运行您的代码。

祝好运。

票数 0
EN

Stack Overflow用户

发布于 2018-12-27 12:30:18

按照以下步骤使用Gmail api永久删除JavaMail邮件中的消息

  1. 连接到商店
  2. 在读写模式下打开文件夹收件箱。
  3. 在读/写模式下打开文件夹Bin。
  4. 从收件箱收到消息。
  5. 将邮件从收件箱复制到Bin。
  6. 将所有邮件的标志设置为已删除。
  7. 删除文件夹。
  8. 关闭商店 def deleteMessages(String userName,String password) { Properties =properties.put();String = "imap.gmail.com";String = "993";String mailStoreType = "pop3";//服务器设置properties.put("mail.imap.host",主机);properties.put("mail.imap.port",端口);// SSL设置properties.setProperty("mail.imap.socketFactory.class",“javax.net.ssl.SSLSocketFactory”;properties.setProperty("mail.imap.socketFactory.fallback","false");properties.setProperty("mail.imap.socketFactory.port",String.valueOf(端口);Session =Session.getDefaultInstance(属性);尝试{ //连接到邮件存储库= session.getStore("imap");store.connect(userName,密码);//打开收件箱文件夹folderInbox =store.getFolder(“收件箱”);folderInbox.open(Folder.READ_WRITE);//打开垃圾文件夹folderBin = store.getFolder("Gmail/Bin");folderBin.open(Folder.READ_WRITE);//从服务器Message[] arrayMessages =folderInbox.getMessages()获取新消息;//将邮件从收件箱复制到垃圾folderInbox.copyMessages( arrayMessages,folderBin) arrayMessages= folderBin.getMessages();for (int i= 0;i< arrayMessages.length;i++) { Message = arrayMessagesi;字符串subject = message.getSubject();message.setFlag(Flags.Flag.DELETED,真);} //删除文件夹以删除标记为“已删除布尔型删除”=“真”的消息;} catch (NoSuchProviderException ex) {System.out.println(“无提供程序”);ex.printStackTrace();} catch (FolderNotFoundException ex) {System.out.println(“未找到文件夹”) ex.printStackTrace();} catch (MessagingException ex) {System.out.println(“无法连接到消息存储”);ex.printStackTrace();}}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44497885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档