用javamail发邮件总是报错怎么办啊?
错误提示:exception
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause
java.lang.NullPointerException
javax.mail.internet.InternetAddress.parse(InternetAddress.java:569)
javax.mail.internet.InternetAddress.parse(InternetAddress.java:529)
javax.mail.internet.InternetAddress.<init>(InternetAddress.java:65)
org.apache.jsp.beta1.sendmail_jsp._jspService(sendmail_jsp.java:164)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
发送邮件代码段:
try{
Properties props = System.getProperties();
Session mailSession = Session.getInstance(props, null);
InternetAddress from = new InternetAddress("guoshun@jianye.net");
//向属性中写入SMTP服务器地址
props.put("mail.smtp.host","jianye.net");
//服务器需要认证
props.put("mail.smtp.auth","true");
mailSession.setDebug(true);
//根据Session 生成Message对象
Message message = new MimeMessage(mailSession);
//设置发信人地址
message.setFrom(from);
//设置收信人地址
message.addRecipient(Message.RecipientType.TO,new InternetAddress(request.getParameter("to")));
//设置email标题
message.setSubject(new String(request.getParameter("subject").getBytes("ISO8859_1"),"GBK"));
//设置email发送时间
message.setSentDate(new Date());
//获得attachment参数
String attachment=new String(request.getParameter("attachment").getBytes("ISO8859_1"),"GBK");
//如果有附件
if (!attachment.equals("")){
// 建立第一部分,正文文本
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(new String(request.getParameter("text").getBytes("ISO8859_1"),"GBK"));
// 建立多个部分Multipart实例
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// 建立第二部分,附件
messageBodyPart = new MimeBodyPart();
// 获得附件
DataSource source = new FileDataSource(attachment);
// 设置附件的数据处理器DataHandler
messageBodyPart.setDataHandler(new DataHandler(source));
// 设置文件名
messageBodyPart.setFileName(attachment);
// 加入第二部分
multipart.addBodyPart(messageBodyPart);
// 将多个部分放到Email中
message.setContent(multipart);
}else{
message.setText(new String(request.getParameter("text").getBytes("ISO8859_1"),"GBK"));
}
//发送email
message.saveChanges();
Transport transport = mailSession.getTransport("smtp");
transport.connect("jianye.net","username","password");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
<P>你的邮件已经成功发送!</P>
<%
}
catch(MessagingException m){
out.println(m.toString());
}
%>