Mailの受信手順を次に示します。
1.JavaMailリソースのlookup処理
JavaMailリソースのlookup処理を行います。
// Mailリソースのlookup
Session session = null;
try {
InitialContext nctx = new InitialContext();
session = (Session) nctx.lookup("java:comp/env/mail/MailSession");
}
catch(NamingException ex) { }2.サーバへの接続
POP3サーバへ接続する場合
// POP3サーバへの接続
Store store = null;
try {
store = session.getStore("POP3"); /* POP3サーバへ接続*/
store.connect("<hostname>", "<user>", "<password>");
}
catch(NoSuchProviderException ex) { }
catch(MessagingException ex) { }IMAPサーバへ接続する場合
// IMAPサーバへの接続
Store store = null;
try {
store = session.getStore("imap"); /* IMAPサーバへ接続 */
store.connect("<hostname>", "<user>", "<password>");
}
catch(NoSuchProviderException ex) { }
catch(MessagingException ex) { }3.受信ディレクトリのオープン
受信ディレクトリをオープンします。
// 受信ディレクトリのオープン
Folder inbox = null;
try {
Folder rootFolder = store.getDefaultFolder();
inbox = rootFolder.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
}
catch(MessagingException ex) { }4.メッセージの取出し
受信したメッセージを取出します。
メッセージから次の内容を取出します。
送信者(From)
宛先(To)
宛先(Cc)
宛先(Bcc)
題名(Subject)
本文
// メッセージの取出し
try {
Message msg = inbox.getMessage(1);
// 送信者(From)の取出し
Address[] fromAddress = msg.getFrom();
// 宛先(To)の取出し
Address[] toAddress = msg.getRecipients(Message.RecipientType.TO);
// 宛先(Cc)の取出し
Address[] ccAddress = msg.getRecipients(Message.RecipientType.CC);
// 宛先(Bcc)の取出し
Address[] bccAddress = msg.getRecipients(Message.RecipientType.BCC);
// 題名(Subject)の取出し
String subject = msg.getSubject();
// 本文の取出し
Object content = msg.getContent();
String text = content.toString();
}
catch(MessagingException ex) { }
catch(IOException ex) { }