當前位置:編程學習大全網 - 編程語言 - 如何使用JavaMail刪除QQ郵件服務器上的郵件

如何使用JavaMail刪除QQ郵件服務器上的郵件

JavaMail是提供給開發者處理電子郵件相關的編程接口。它是Sun發布的用來處理email的API。可以方便地執行壹些常用的郵件傳輸。

如果需要使用JavaMail編程來實現刪除QQ郵件服務器上的郵件,可以參考以下代碼,在調用deleteMessages方法時,只需要傳入郵件服務器地址、端口、郵箱登錄用戶名、登錄密碼以及需要刪除的郵件主題五個參數即可:

package?com.what21.network.mail;

import?java.util.Properties;

import?javax.mail.Flags;

import?javax.mail.Folder;

import?javax.mail.Message;

import?javax.mail.MessagingException;

import?javax.mail.NoSuchProviderException;

import?javax.mail.Session;

import?javax.mail.Store;

public?class?EmailMessageRemover?{

/**

*?刪除主題中包含subjectToDelete字符串的所有郵件

*?

*?@param?郵箱服務器地址

*?@param?郵箱服務器端口

*?@param?登錄用戶名

*?@param?登錄密碼

*?@param?如果郵件主題包含這個字符串就會對其進行刪除操作

*/

public?void?deleteMessages(String?host,?String?port,?String?userName,

String?password,?String?subjectToDelete)?{

Properties?properties?=?new?Properties();

//?郵箱服務器配置

properties.put("mail.imap.host",?host);

properties.put("mail.imap.port",?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(port));

Session?session?=?Session.getDefaultInstance(properties);

try?{

//?連接郵箱服務器

Store?store?=?session.getStore("imap");

store.connect(userName,?password);

//?打開收件箱

Folder?folderInbox?=?store.getFolder("INBOX");

folderInbox.open(Folder.READ_WRITE);

//?從服務器獲取新郵件

Message[]?arrayMessages?=?folderInbox.getMessages();

for?(int?i?=?0;?i?<?arrayMessages.length;?i++)?{

Message?message?=?arrayMessages[i];

String?subject?=?message.getSubject();

if?(subject.contains(subjectToDelete))?{

//給需要刪除的郵件打上標簽

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

System.out.println("Marked?DELETE?for?message:?"?+?subject);

}

}

//?刪除指定的郵件

boolean?expunge?=?true;

folderInbox.close(expunge);

//?another?way:

//?folderInbox.expunge();

//?folderInbox.close(false);

//?斷開連接

store.close();

}?catch?(NoSuchProviderException?ex)?{

System.out.println("No?provider.");

ex.printStackTrace();

}?catch?(MessagingException?ex)?{

System.out.println("Could?not?connect?to?the?message?store.");

ex.printStackTrace();

}

}

/**

*?測試-Gmail郵箱

*?protocol.

*/

public?static?void?main(String[]?args)?{

String?host?=?"imap.gmail.com";

String?port?=?"993";

String?userName?=?"your_email";

String?password?=?"your_password";

EmailMessageRemover?remover?=?new?EmailMessageRemover();

String?subjectToDelete?=?"Newsletter";

remover.deleteMessages(host,?port,?userName,?password,?subjectToDelete);

}

}

  • 上一篇:計算機專業有哪些類別?信息與計算科學和計算機科學與技術有什麽區別?
  • 下一篇:商丘職業技術學院的單招專業有哪些?
  • copyright 2024編程學習大全網