求救--javamail做收邮件时:javax.mail.NoSuchProviderException: No provider for pop3 可能是你的pop3服务器指定的不对 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 jsp:<%@ page contentType="text/html; charset=ISO8859_1" %><%@ page import="ejb.pop3Bean"%><%pop3Bean pop = new pop3Bean();pop.setServer("pop3.163.com",110);pop.setUser("wjmmml");pop.setPass("******");pop.pop3accept();%>package ejb;import javax.mail.*;import java.util.*;import javax.mail.internet.*;import java.io.*;import javax.activation.*;public class pop3Bean { String m_host; //SMTP服务器名称 int m_port; String m_user; String m_pass; String info; public pop3Bean() { m_host=null; m_port=110; m_user=null; m_pass=null; info=""; } public String getInfo() { return info; } public void setInfo(String newSample) { info = newSample; } //设定smtp服务器用户名(可选) public void setUser(String user){ m_user=user; } //设定smtp服务器口令(可选) public void setPass(String pass){ m_pass=pass; } //设定pop3的地址和端口号(可选) public void setServer(String server,int port){ if(port>0) m_port=port; m_host=server; } //设定pop3服务器地址,端口号使用缺省值 public void setServer(String server){ m_host=server; } public void pop3accept(){ try {//该程序为接收邮件 Properties props=System.getProperties(); //获取系统变量 Authenticator auth = new MailRz(); props.put("mail.smtp.host",m_host); props.put("mail.smtp.auth","true"); System.out.println("执行到设置完server属性了;"); Session session = Session.getDefaultInstance(props,auth); //建立session Store store = session.getStore("pop3"); System.out.println("得到pop的store对象;"); if (store.isConnected()){ store.close(); }else{ store.connect(m_host,m_port,m_user,m_pass); } System.out.println("得到pop的connect对象;"); //After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it: Folder folder = store.getFolder("INBOX");//连接到Store后,取得一个文件夹,一般默认的是INDEX folder.open(Folder.READ_WRITE);//READ_ONLY为打开方式 Message message[] = folder.getMessages();//从文件夹获取邮件信息 //可以用两种方式去获得邮件信息,getContent()用来获得邮件的主体信息。而WriteTo()可以用来获得邮件的全部信息,包括头部信息 // System.out.println(((MimeMessage)message).getContent()); for (int i=0,n=message.length;i<n;i++) { String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal(); String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress(); System.out.println("From:"+out_from_person+"\t"); System.out.println("Address:"+out_from_address+"\t"); String out_subject = message[i].getSubject(); System.out.println("Subject:"+out_subject+"\t"); //以下代码用来获得邮件的正文信息 Part messagePart = message[i]; Object out_content = messagePart.getContent(); if (out_content instanceof Multipart) { messagePart = ((Multipart)out_content).getBodyPart(0); System.out.println("[ Multipart Message ]"); } String out_content_type = messagePart.getContentType(); System.out.println("CONTENT:"+out_content_type); if (out_content_type.startsWith("text/plain") || out_content_type.startsWith("text/html")) { InputStream ipstm = messagePart.getInputStream(); BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm)); String thisLine = bufreader.readLine(); while (thisLine != null) { System.out.println("thisLine: "+thisLine); thisLine = bufreader.readLine(); } } System.out.println("------------------------------------------------------------"); message[i].setFlag(Flags.Flag.DELETED,true);//最后删除服务器端的邮件 } //DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER folder.close(true);//true的话,彻底删除已经标记为DELETE的邮件,如果为false的话,就不删除 store.close();//关闭 } catch(Exception ej2) { System.out.println(ej2); } } }但是调用时就是出错啊,提示异常javax.mail.NoSuchProviderException: No provider for pop3 直接用store.connect(mailhost, user, password);用默认看看 我用我自己写的代码试了试,也不行,可是对于在本局域网设置的一个mailserver是可以的,所以我怀疑是不是因为网络的原因 用的应用服务器是webshpere吧,他不支持pop3,只支持imap。 SWING中JTextArea动态显示数据的问题 为什么使用了volatile关键字,两个线程还是没有同步成功!求救 java swing中放html的思路和肯定 一个关于GUI的小问题 新手问题 java 正式表达式问题? javac出现错误,奇怪的问题 请问:小问题??? 有关对数据库的提交问题 简单问题求解!!! 30分求javamail的验证和收邮件(再线) html页面如何指向web-inf/classes下的applet。是否使用codebase之类的说明,该如何书写。
<%@ page contentType="text/html; charset=ISO8859_1" %>
<%@ page import="ejb.pop3Bean"%>
<%pop3Bean pop = new pop3Bean();
pop.setServer("pop3.163.com",110);
pop.setUser("wjmmml");
pop.setPass("******");
pop.pop3accept();%>
package ejb;import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;
public class pop3Bean {
String m_host; //SMTP服务器名称
int m_port;
String m_user;
String m_pass;
String info;
public pop3Bean() {
m_host=null;
m_port=110;
m_user=null;
m_pass=null;
info="";
}
public String getInfo() {
return info;
}
public void setInfo(String newSample) {
info = newSample;
} //设定smtp服务器用户名(可选)
public void setUser(String user){
m_user=user;
}
//设定smtp服务器口令(可选)
public void setPass(String pass){
m_pass=pass;
} //设定pop3的地址和端口号(可选)
public void setServer(String server,int port){
if(port>0) m_port=port;
m_host=server;
} //设定pop3服务器地址,端口号使用缺省值
public void setServer(String server){
m_host=server;
}
public void pop3accept(){
try {//该程序为接收邮件
Properties props=System.getProperties(); //获取系统变量
Authenticator auth = new MailRz();
props.put("mail.smtp.host",m_host);
props.put("mail.smtp.auth","true");
System.out.println("执行到设置完server属性了;");
Session session = Session.getDefaultInstance(props,auth); //建立session
Store store = session.getStore("pop3");
System.out.println("得到pop的store对象;");
if (store.isConnected()){
store.close();
}else{
store.connect(m_host,m_port,m_user,m_pass);
} System.out.println("得到pop的connect对象;");
//After connecting to the Store,you can get a Folder,which must be opened before you can read messages from it:
Folder folder = store.getFolder("INBOX");//连接到Store后,取得一个文件夹,一般默认的是INDEX
folder.open(Folder.READ_WRITE);//READ_ONLY为打开方式
Message message[] = folder.getMessages();//从文件夹获取邮件信息 //可以用两种方式去获得邮件信息,getContent()用来获得邮件的主体信息。而WriteTo()可以用来获得邮件的全部信息,包括头部信息
// System.out.println(((MimeMessage)message).getContent());
for (int i=0,n=message.length;i<n;i++)
{ String out_from_person = ((InternetAddress)message[i].getFrom()[0]).getPersonal();
String out_from_address = ((InternetAddress)message[i].getFrom()[0]).getAddress();
System.out.println("From:"+out_from_person+"\t");
System.out.println("Address:"+out_from_address+"\t"); String out_subject = message[i].getSubject();
System.out.println("Subject:"+out_subject+"\t"); //以下代码用来获得邮件的正文信息
Part messagePart = message[i];
Object out_content = messagePart.getContent();
if (out_content instanceof Multipart)
{
messagePart = ((Multipart)out_content).getBodyPart(0);
System.out.println("[ Multipart Message ]");
}
String out_content_type = messagePart.getContentType();
System.out.println("CONTENT:"+out_content_type); if (out_content_type.startsWith("text/plain") || out_content_type.startsWith("text/html"))
{
InputStream ipstm = messagePart.getInputStream();
BufferedReader bufreader = new BufferedReader(new InputStreamReader(ipstm));
String thisLine = bufreader.readLine();
while (thisLine != null)
{
System.out.println("thisLine: "+thisLine);
thisLine = bufreader.readLine();
}
}
System.out.println("------------------------------------------------------------");
message[i].setFlag(Flags.Flag.DELETED,true);//最后删除服务器端的邮件
}
//DELETED,ANSWERED,DRAFT,FLAGGED,RECENT,SEEN,USER
folder.close(true);//true的话,彻底删除已经标记为DELETE的邮件,如果为false的话,就不删除
store.close();//关闭
}
catch(Exception ej2)
{
System.out.println(ej2);
}
}
}
但是调用时就是出错啊,提示异常javax.mail.NoSuchProviderException: No provider for pop3