我可以给你一个不用javamail的收发邮件的程序,这是我的webmail中的一部分,可以给我来信:[email protected]支持smtp认证
解决方案 »
- 火龙果大哥在不在,进来看看,迭代器原理问题
- swing皮肤如何切换?
- List four kinds of procedures (funcitons)
- 如何以十六进制方式打印 byte[] bytearray 中的字节
- 键盘事件问题,急!!!???
- 0x0f00,0x4444,0x0f00,0x4444 是什么意思?
- 关于获取网域中计算机名字的问题?
- 求高手点拨一个“Java项目的移植调试”的问题..
- Applet能实现这些吗???
- 这个要求值50分吗?
- 今天开始scjp的培训,散分!!
- 求救--javamail做收邮件时:javax.mail.NoSuchProviderException: No provider for pop3
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="javax.mail.*, javax.mail.internet.*, javax.activation.*,"%><%@ page import="java.net.*"%>
<%@ page import="java.util.*, java.text.*" %>
<%@ page session="true"%>
<% Properties props = new Properties();
Session sendMailSession;
Transport transport;
sendMailSession = Session.getInstance(props, null);
props.put("mail.smtp.host", "smtp.sina.com.cn"); //"202.106.187.180" 是“smtp.sina.com.cn”的IP!
props.put("mail.smtp.auth", "true"); //允许smtp校验 transport = sendMailSession.getTransport("smtp");
transport.connect("smtp.sina.com.cn","你的用户名","你的密码"); //你在sina的用户名,密码...........
Message newMessage = new MimeMessage(sendMailSession); //设置mail主题
String mail_subject="图书过期通知";
newMessage.setSubject(mail_subject);
//设置发信人地址
String strFrom="管理员";
strFrom=new String(strFrom.getBytes(),"8859_1");
newMessage.setFrom(new InternetAddress(strFrom));
//设置收件人地址
newMessage.setRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); //设置mail正文
newMessage.setSentDate(new java.util.Date());
String mail_text= "尊敬的读者,您好!\r\n"+
"\r\n "+
" 您在本馆所借的书《123》应该于 归还,现在已经过期,请尽快将图书归还!\r\n "+
"\r\n "+
" 管理员\r\n";
newMessage.setText(mail_text); newMessage.saveChanges(); //保存发送信息
transport.sendMessage(newMessage,newMessage.getRecipients(Message.RecipientType.TO)); //发送邮件 transport.close();
%>
<%@ page import="java.util.*, javax.mail.*, javax.mail.internet.*" %>
<%
String server="172.17.1.1";//request.getParameter("host");
String username="wangjm";//request.getParameter("username");
String password="1111";//request.getParameter("password");
System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff111");
Properties props = new Properties();
props.put("mail.smtp.host",server);
Session s = Session.getInstance(props,null);
System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff222"); int port =110;
String protocol = "pop3";
String file = "";
System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff333"); s.setDebug(false); URLName urln = new URLName(protocol,server,port,file,username,password);
Store store=null;
try{
store = s.getStore(protocol);
}catch(Exception e){
System.out.println("7777777777777777777="+e.toString());
}
System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff444"); s.setDebug(true);
try{
System.out.println("hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff5555"); store.connect(server,port,username,password);
}catch(MessagingException e){
throw new Exception("Cannot log on to server.Please verify the username and password.");
}
try{
String mbox = "INBOX";
Folder folder = store.getFolder(mbox);
folder.open(Folder.READ_WRITE);
Message[] messages = folder.getMessages();
int i=0;
for(i=messages.length-1;i>=0;i--){
InternetAddress[] from = (InternetAddress[])messages[i].getFrom();
InternetAddress[] to = (InternetAddress[])messages[i].
getRecipients(Message.RecipientType.TO);
%>
<%=i+1%><p>To <%= to[0].getAddress() %>, from <a href="content.jsp?id=<%=i%>"target=_blank> <%= from[0].getAddress() %></a>,
subject <%= messages[i].getSubject() %>,date:<%=messages[i].getSentDate()%>,body:<%=messages[i].getContent()%> </p><%
} }catch(MessagingException e){
throw new Exception("Cannot read message.Please verify your E-mail server has a valid inbox");
}finally{
store.close();
}
%>
却出现如下的异常
hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff111
[02.08.14 18:22:05:313 CST] 496807b0 SystemOut U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff222
[02.08.14 18:22:05:373 CST] 496807b0 SystemOut U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff333
[02.08.14 18:22:05:433 CST] 496807b0 SystemOut U 7777777777777777777=javax.mail.NoSuchProviderException: No provider for pop3
[02.08.14 18:22:05:503 CST] 496807b0 SystemOut U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff444
[02.08.14 18:22:05:553 CST] 496807b0 SystemOut U hhhhhhhhhhhhhhhhhhhhhhhhhhhhffffffffffffffffffffffffff5555
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;public class smtpBean {
String info ; //存储出错信息
String m_user; //用于需要验证的用户名
String m_pass; //口令
String m_host; //SMTP服务器名称
int m_port; //端口号,缺省为25 String m_from; //发件人
String m_to; //收件人
String m_cc; //抄送
String m_bcc; //密送
String m_subject; //主题
String m_body; //内容体
LinkedList m_attach=null; //附件的文件名列表 public smtpBean() {
info ="" ;
m_user ="" ;
m_pass ="" ;
m_host ="" ;
m_port =25 ;
m_from ="" ;
m_to ="" ;
m_cc ="" ;
m_bcc ="" ;
m_subject ="" ;
m_body ="" ;
m_attach =null ;
}
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;
} //设定smtp的地址和端口号(可选)
public void setServer(String server,int port){
if(port>0) m_port=port;
m_host=server;
} //设定smtp服务器地址,端口号使用缺省值
public void setServer(String server){
m_host=server;
} //发件人
public void setFrom(String from){
m_from = from;
} //收件人
public void setTo(String to){
m_to = to;
} //抄送(可选)
public void setCc(String cc){
m_cc=cc;
} //密送(可选)
public void setBcc(String bcc){
m_bcc=bcc;
} //设置新的主题(可选)
public void setSubject(String subject){
m_subject=subject;
} //设置信的内容,若以<html>或<HTML>开头的内容为text/html格式
public void setBody(String body){
m_body=body;
} //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
public void attach(String attachfile){
if(m_attach==null) m_attach=new LinkedList();
m_attach.add(attachfile);
} public boolean sendMail() throws Exception{ Properties props=System.getProperties();
props.setProperty("mail.transport.protocol","smtp"); //smtp协?
props.setProperty("mail.smtp.host",m_host); //服务器地址
props.setProperty("mail.smtp.port",""+m_port); //端口号
//认证信息
if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
props.setProperty("mail.smtp.auth","true"); } Session sess = Session.getInstance(props,null ); MimeMessage msg=new MimeMessage(sess); //发件人
msg.setFrom(new InternetAddress(m_from)); //收件人、抄送、密送
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
if(m_cc!=null && m_cc.length()>0)
msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
if(m_bcc!=null && m_bcc.length()>0)
msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc)); //主题
if(m_subject!=null) msg.setSubject(m_subject); //发件日期
msg.setSentDate(new Date()); //文本内容
MimeMultipart content=new MimeMultipart();
if(content==null) return false; MimeBodyPart part;
if(m_body!=null && m_body.length()>0){
part=new MimeBodyPart();
String type="text/plain";
if(m_body.startsWith("<html>") || m_body.startsWith("<HTML>")){
type="text/html";
}
part.setText(m_body); //以<html>和<HTML>开始的文本为text/html类型
part.setHeader("Content-Type",type); content.addBodyPart(part); } //添加附件
if(m_attach!=null){ String filename;
Iterator it=m_attach.iterator(); while(it.hasNext()){
filename=(String)it.next();
if(filename==null || filename.length()<=0) continue; part=new MimeBodyPart();
FileDataSource fds = new FileDataSource(filename);
part.setDataHandler(new DataHandler(fds));
part.setFileName(MimeUtility.encodeText(fds.getName())); content.addBodyPart(part);
}
} //保存修改
msg.setContent(content);
msg.saveChanges(); //如果需要验证用户(如:smtp.sina.com.cn),则使用connect并sendMesssage
//注意必须设定mail.smtp.auth属性为true
if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
Transport trans=sess.getTransport();
trans.connect(m_host,m_user,m_pass);
trans.sendMessage(msg,InternetAddress.parse(m_to));
//if(m_cc!=null && m_cc.length()>0){
// trans.sendMessage(msg,InternetAddress.parse(m_cc));
//}
trans.close();
} //否则,不需要用户名和口令使用静态方法发送由件
else Transport.send(msg); return true;
}}