如何使用javamail和imap删除永久消息

时间:2016-09-25 14:07:16

标签: java imap zimbra

我使用imap从邮件服务器读取邮件。我希望当我阅读邮件时,邮件从邮件服务器中删除。 我使用javaMail库并将delete标志设置为true,我无法从网络面板看到消息,但是当我得到消息计数时,消息计数没有改变。 我的邮件服务器是Zimbra。

int count = inbox.getMessageCount();//for example count=100
inbox[i].setFlag(Flags.Flag.DELETED, true);
count = inbox.getMessageCount();// count=100

2 个答案:

答案 0 :(得分:3)

您需要在删除标记后删除邮件,以便实际将其从文件夹中删除。与此同时,他们只是坐着\Deleted旗帜,大多数IMAP客户都会隐藏它们。

调用清除(JavaDoc)应该像inbox.expunge()一样简单。这将导致您删除的任何已标记已删除或可能在其他会话中标记为已删除的邮件,并将重新编号所有其他邮件中的现有邮件序列号。

如果您的服务器支持UIDPLUS并且您需要更多控制权,IMAPFolder.expunge()支持删除特定的DELETED消息列表。

答案 1 :(得分:0)

#include<stdio.h>
int main()
{
  int facto, i, m ;
  m=1 ;
  printf("Ener a Value : ");
  while( 0 < scanf("%d", &facto) && facto > 0){
    for( i=facto-1 ; i>m ; i-- )  
      facto *= i ; 
    printf("My Reg num:SP-16/BBS/033\nFactorial of the number : =%d\n",facto); 
  printf("press any key to find factorial of a number again : ");
  }
  return 0;
} 

谢谢@Max