在同事帮助下写了一个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;
/**
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";
}
}
参考实例文章