在同事帮助下写了一个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";
}
}