<%
String host = "live.cn";//邮箱服务器
String user = "********";//邮箱名
String password = "*******";//密码
%> <%
String tto = request.getParameter("to");//对方地址
String ttitle = request.getParameter("title");//文件标题
String emailtype = request.getParameter("emailtype");//获取email类型
String tcontent = request.getParameter("content");//内容
String tfj1 = request.getParameter("fj1");//附近名
String tfj2 = request.getParameter("fj2");//附件名
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "localhost");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
Session s = Session.getInstance(props);
s.setDebug(true);
MimeMessage message = new MimeMessage(s);
//给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from = new InternetAddress(user + "@" + host);
message.setFrom(from);
InternetAddress to = new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(ttitle);
Multipart mm = new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象
//设置信件文本内容
BodyPart mdp = new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
mdp.setContent(tcontent, emailtype + ";charset=gb2312");//给BodyPart对象设置内容和格式/编码方式
mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中
//设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送)
DataHandler dh = new DataHandler(tfj1,
"text/plain;charset=gb2312");
//新建一个DataHandler对象,并设置其内容和格式/编码方式
if (tfj1.length() > 0) {
mdp = new MimeBodyPart();//新建一个存放附件的BodyPart
mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容
mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh
mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中
}
//设置信件的附件2(用本地上的文件作为附件)
if (tfj2.length() > 0) {
mdp = new MimeBodyPart();
FileDataSource fds = new FileDataSource(tfj2);
dh = new DataHandler(fds);
int ddd = tfj2.lastIndexOf("\\");
String fname = tfj2.substring(ddd + 1);//提取文件名
//String ffname = new String(fname.getBytes("gb2312"),
//"ISO8859-1");//处理文件名是中文的情况]
String ffname = javax.mail.internet.MimeUtility
.encodeText(fname);
mdp.setFileName(ffname);//可以和原文件名不一致,但最好一样
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
}
message.setContent(mm);//把mm作为消息对象的内容
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect("smtp." + host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
出现的异常
=========================================================================================
严重: Servlet.service() for servlet jsp threw exception
javax.mail.MessagingException: Could not connect to SMTP host: smtp.live.cn, port: 465;
nested exception is:
java.io.IOException: Couldn't connect using "javax.net.ssl.SSLSocketFactory" socket factory to host, port: smtp.live.cn, 465; Exception: java.lang.reflect.InvocationTargetException
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:911)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:158)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at org.apache.jsp.jml.sendmail_jsp._jspService(sendmail_jsp.java:149)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)===========================================================
在线等答案,希望哪位大虾能帮帮忙,我被这东西折腾好几天了,郁闷呀,先在这里谢谢
String host = "live.cn";//邮箱服务器
String user = "********";//邮箱名
String password = "*******";//密码
%> <%
String tto = request.getParameter("to");//对方地址
String ttitle = request.getParameter("title");//文件标题
String emailtype = request.getParameter("emailtype");//获取email类型
String tcontent = request.getParameter("content");//内容
String tfj1 = request.getParameter("fj1");//附近名
String tfj2 = request.getParameter("fj2");//附件名
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "localhost");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
Session s = Session.getInstance(props);
s.setDebug(true);
MimeMessage message = new MimeMessage(s);
//给消息对象设置发件人/收件人/主题/发信时间
InternetAddress from = new InternetAddress(user + "@" + host);
message.setFrom(from);
InternetAddress to = new InternetAddress(tto);
message.setRecipient(Message.RecipientType.TO, to);
message.setSubject(ttitle);
Multipart mm = new MimeMultipart();//新建一个MimeMultipart对象用来存放多个BodyPart对象
//设置信件文本内容
BodyPart mdp = new MimeBodyPart();//新建一个存放信件内容的BodyPart对象
mdp.setContent(tcontent, emailtype + ";charset=gb2312");//给BodyPart对象设置内容和格式/编码方式
mm.addBodyPart(mdp);//将含有信件内容的BodyPart加入到MimeMultipart对象中
//设置信件的附件1(自定义附件:直接将所设文本内容加到自定义文件中作为附件发送)
DataHandler dh = new DataHandler(tfj1,
"text/plain;charset=gb2312");
//新建一个DataHandler对象,并设置其内容和格式/编码方式
if (tfj1.length() > 0) {
mdp = new MimeBodyPart();//新建一个存放附件的BodyPart
mdp.setFileName("text.txt");//加上这句将作为附件发送,否则将作为信件的文本内容
mdp.setDataHandler(dh);//给BodyPart对象设置内容为dh
mm.addBodyPart(mdp);//将含有附件的BodyPart加入到MimeMultipart对象中
}
//设置信件的附件2(用本地上的文件作为附件)
if (tfj2.length() > 0) {
mdp = new MimeBodyPart();
FileDataSource fds = new FileDataSource(tfj2);
dh = new DataHandler(fds);
int ddd = tfj2.lastIndexOf("\\");
String fname = tfj2.substring(ddd + 1);//提取文件名
//String ffname = new String(fname.getBytes("gb2312"),
//"ISO8859-1");//处理文件名是中文的情况]
String ffname = javax.mail.internet.MimeUtility
.encodeText(fname);
mdp.setFileName(ffname);//可以和原文件名不一致,但最好一样
mdp.setDataHandler(dh);
mm.addBodyPart(mdp);
}
message.setContent(mm);//把mm作为消息对象的内容
message.saveChanges();
Transport transport = s.getTransport("smtp");
transport.connect("smtp." + host, user, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
%>
出现的异常
=========================================================================================
严重: Servlet.service() for servlet jsp threw exception
javax.mail.MessagingException: Could not connect to SMTP host: smtp.live.cn, port: 465;
nested exception is:
java.io.IOException: Couldn't connect using "javax.net.ssl.SSLSocketFactory" socket factory to host, port: smtp.live.cn, 465; Exception: java.lang.reflect.InvocationTargetException
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:911)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:158)
at javax.mail.Service.connect(Service.java:233)
at javax.mail.Service.connect(Service.java:134)
at org.apache.jsp.jml.sendmail_jsp._jspService(sendmail_jsp.java:149)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)===========================================================
在线等答案,希望哪位大虾能帮帮忙,我被这东西折腾好几天了,郁闷呀,先在这里谢谢
解决方案 »
- word文档合并的问题。。。求解??
- java如何读取扫描格式的PDF文件
- myeclipse6.0 如何安装 jbpm插件
- 用C抓取网页的gzip数据、然后把这个数据放入到Memcached缓存里、再用java把数据从Memcached里取出来!(高人进)
- java webservice问题
- 不执行,能直接说出结果么,为啥?
- struts+weblogic8.1的中文问题
- ██████★武汉的高手请进来★██████
- 如何打开cloudview??急死人!
- 急急急:Weblogic6.1(sp2)+EJB2.0+SOAP2.3.1发布问题!!!(分不够再加!)
- java中的==和equals
- spring中数据源问题
2.props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");这句不明白何意,去掉如何?我的邮件发送组件中就没有这句。
3.有可能是smtp填错了,或是当前使用的账号未开通smtp服务。(Could not connect to SMTP host: smtp.live.cn)
或者可能都不是这些问题,望楼主解决后记得贴上解决方法,谢谢。
[color=#FF6600]String host = "live.cn";//邮箱服务器
String user = "********";//邮箱名
String password = "*******";//密码 你这3句到底对不对? 还有你的host你写的是域名还是主机名,正常情况下,应该是你的邮件服务器的主机名。还有就是下面几句话
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465"); 请跟踪代码确认是否都set成功,是否有空值set进去了,你这个程序是否用到spring的注入。[/color]
还有就是:密码和用户名不存在错误。
POP/SMTP设置
开启看是不是这里的原因
你本机有SMTP服务器?
hotmail的SMTP服务器:smtp.live.com ,端口25或者587。(据说,没考证,自己上hotmail查。)