代码改变世界

使用Java Mail接收 Gmail 电子邮件

2010-11-03 15:08  jinze  阅读(1231)  评论(2编辑  收藏  举报

最近的工作需要使用Java来接收电子邮件,这里使用Gmail的imap协议,特别把代码整理一下,希望对大家有帮助:

 

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 
*/
package com.deepfounder.BlogPlay.util.Mail;

/**
 *
 * 
@author Andy
 
*/
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

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 InboxReader {

    
public List<Message> ReadMailByIMAP(String username, String Password) //返回list类型的电子邮件列表。
    {
        java.util.List MessageList 
= new ArrayList();
        Properties props 
= System.getProperties();
        props.setProperty(
"mail.store.protocol""imaps");//设置电子邮件协议

        
try {
            Session session 
= Session.getDefaultInstance(props, null);
            Store store 
= session.getStore("imaps");
            store.connect(
"imap.gmail.com", username, Password);
            System.out.println(store);

            Folder inbox 
= store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);
            Message messages[] 
= inbox.getMessages();
            
for (Message message : messages) {
                MessageList.add(message);
                
//System.out.println(message.getSubject());
            }
        } 
catch (NoSuchProviderException e) {
            e.printStackTrace();
            System.exit(
1);
        } 
catch (MessagingException e) {
            e.printStackTrace();
            System.exit(
2);
        }
        
return MessageList;

    }

    
public static void main(String args[]) {
        InboxReader ir 
= new InboxReader();
        String username 
="username";//设置用户名
        String Password = "************";//设置密码
        List<Message> list= ir.ReadMailByIMAP(username, Password);
        
for(int i=0;i<list.size();i++){
            
try {
                System.out.println(list.get(i).getSubject());
            } 
catch (MessagingException ex) {
                Logger.getLogger(InboxReader.
class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }
}

 

 

用电子邮件联系Andy