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);
}
}