Java收邮件功能

在同事帮助下写了一个javaMail收邮件的功能 好像用不成
请哪位大哥赐教下~ 实在没办法了 只要收件功能就行了
[b]问题补充:[/b]
总是报这个异常javax.mail.NoSuchProviderException: Invalid protocol: null
at javax.mail.Session.getProvider(Session.java:431)
at javax.mail.Session.getStore(Session.java:530)

代码
package com.abank.util;

import com.ReciveOneMail;

import javax.mail.*;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**

  • Created by IntelliJ IDEA.
  • User: Administrator
  • Date: 2009-11-27
  • Time: 16:17:13
  • To change this template use File | Settings | File Templates.
    */
    public class MainSender {
    // 接受邮件
    // 接受邮件
    public static String getMail() throws Exception{
    String host = "pop3.163.com";

    // 创建Properties 对象
    Properties props = new Properties();
    final String username = "shaersashajindan@163.com";
    final String password = "327521526";
    // 创建邮件会话
    Session session = Session.getDefaultInstance(props,null);
    try {
        // 获取邮箱的pop3存储
         URLName urln = new URLName("pop3");
        Store store = session.getStore(urln);
        store.connect(host, username, password);
    
        // 获取inbox文件
        Folder folder = store.getFolder("INBOX");
        folder.open(Folder.READ_ONLY); // 打开,打开后才能读取邮件信息
    
        // 获取邮件消息
        Message[] message = folder.getMessages();
    
        FetchProfile profile = new FetchProfile();
        profile.add(FetchProfile.Item.ENVELOPE);
        folder.fetch(message, profile);
    
        System.out.println("unread message count =:"+folder.getDeletedMessageCount());
        System.out.println("message length =:"+message.length);
        System.out.println("Messages's length: " + message.length);
        ReciveOneMail pmm = null;
        for (int i = 0, n = message.length; i < n; i++) {
            System.out.println("============================================================");
            pmm = new ReciveOneMail((MimeMessage) message[i]);
            System.out.println("Message " + i + " subject: "
                    + pmm.getSubject());
            System.out.println("Message " + i + " sentdate: "
                    + pmm.getSentDate());
            System.out.println("Message " + i + " replysign: "
                    + pmm.getReplySign());
            System.out.println("Message " + i + " hasRead: " + pmm.isNew());
            System.out.println("Message " + i + "  containAttachment: "
                    + pmm.isContainAttach((Part) message[i]));
            System.out.println("Message " + i + " form: " + pmm.getFrom());
            System.out.println("Message " + i + " to: "
                    + pmm.getMailAddress("to"));
            System.out.println("Message " + i + " cc: "
                    + pmm.getMailAddress("cc"));
            System.out.println("Message " + i + " bcc: "
                    + pmm.getMailAddress("bcc"));
            pmm.setDateFormat("yy年MM月dd日 HH:mm");
            System.out.println("Message " + i + " sentdate: "
                    + pmm.getSentDate());
            System.out.println("Message " + i + " Message-ID: "
                    + pmm.getMessageId());
            // 获得邮件内容===============
            pmm.getMailContent((Part) message[i]);
            System.out.println("Message " + i + " bodycontent: \r\n"
                    + pmm.getBodyText());
            pmm.setAttachPath("c:\\mailfile");
            pmm.saveAttachMent((Part) message[i]);
            message[i].setFlag(Flags.Flag.DELETED, true);
            if(message[i].isSet(Flags.Flag.DELETED))
                System.out.println("邮件已删除");
    
        }
    
        // 关闭资源
        folder.close(true);
        store.close();
        System.out.println("success");
    } catch (MessagingException e) {
        e.printStackTrace();
    }
    
    System.out.println("GetMail Process Over!");
    return "ririri";
    

    }
    }

参考实例文章

http://www.iteye.com/topic/49031

http://xiangzhengyan.iteye.com/blog/85961