当前位置: 首页 > 面试题库 >

使用javax.mail在服务器上删除电子邮件

方献
2023-03-14
问题内容

我从服务器使用IMAP协议就像是接收电子邮件描述了这里。这工作得很好,我可以将电子邮件和附件存储在磁盘上。

问题:
当客户端尝试接收所有电子邮件时,是否可以从服务器删除文件,以使它们不再可用?
如果是这样,请告诉我如何。


问题答案:

您应该能够通过标准API来执行此操作。

首先,您需要获取Message要删除的(或消息)的引用-如果您成功阅读它们,那么您已经可以做到
这一点。现在,没有显式的delete()操作,但是您可以像这样将消息标记为已删除:

message.setFlag(Flags.Flag.DELETED, true);

这会将邮件标记为已删除(通常是在桌面IMAP客户端中执行删除操作)。为了强制删除已删除的邮件,当您完成对 它们所驻留的Folder(s)的处理后,请致电

folder.close(true);

true标志指示服务器清除所有已删除的邮件。

瞧!当客户端使用任何IMAP客户端连接到服务器时,客户端应该不再看到这些消息。

编辑:

不要忘记以READ_WRITE模式打开文件夹,否则
实际上不会从服务器中删除消息。

folder.open(Folder.READ_WRITE);

See:
http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMailDeleting



 类似资料:
  • 问题内容: 我想使用gmail作为smtp服务器发送电子邮件。 这是我的代码,我没有让它工作…运行testSettings()之后,我得到了调试输出,然后它停止了。没有超时,没有错误,什么都没有。 发生以下错误:http : //pastie.org/private/rkoknss6ppiufjd9swqta 问题答案: 代替 props.put(“ mail.transport.protocol

  • 在本章中,我们将了解如何使用JavaMail API删除电子邮件。 删除消息涉及使用与消息关联的标志。 不同的状态有不同的标志,一些是系统定义的,一些是用户定义的。 预定义标志在内部类Flags.Flag中定义,如下所示: Flags.Flag.ANSWERED Flags.Flag.DELETED Flags.Flag.DRAFT Flags.Flag.FLAGGED Flags.Flag.RE

  • 我有一个Java程序,安装在一台旧的Ubuntu机器上,使用javax.mail发送邮件。然而,那台机器坏了,我现在正在一台新的CentOS机器上运行同样的Java应用程序。 但是,当尝试使用mail.smtp.host=127.0.0.1发送电子邮件时,我得到一个错误“MessagingException:501语法:HELO hostname”。 我猜邮件服务器尚未在此CentOS中激活。 如

  • 我试图发送电子邮件使用gmail smtp使用javax.mail.下面是我的代码 代码工作正常当我在本地服务器上运行它时,但当我尝试在Elastic beanstek上运行它时(我的服务器在AWS EBS上运行),身份验证失败异常即将到来注意:我已打开从Google A/c设置访问不太安全的应用程序,但我仍然收到此错误 javax.mail.身份验证失败异常:534-5.7.14请通过您的网络浏

  • Java: openjdk版本“11.0.11”2021-04-20 openjdk运行时环境(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04) openjdk 64位服务器VM(构建11.0.11+9-Ubuntu-0Ubuntu2.20.04,混合模式,共享) 握手后新会话票证到达: SSL-Session: 协议:TLSv1.3 密码:TLS_AES_256_GCM_SH

  • 我目前正在为某人做一个网站,我想在联系我们页面上添加一个表单,使用他们没有Php的网络托管服务器向他们的电子邮件地址发送消息。有人能帮我吗?我无法理解这个过程,以及如何使它安全并真正发挥作用。我必须在服务器上部署一些东西吗?或者我可以使用他们在那里的smpt服务器吗?如果是这样,我如何确保smtp服务器身份验证在客户端的devols上不可见。谢谢你!