提问:关于JAVAMAIL发送时提示不能连接SMTP服务器的问题
源代码如下:
<html>
<head>
<title> CH17 - JavaMail2.jsp </title>
</head>
<body>
<h2> 利用JavaMail来传送电子邮件 - HTML格式 </h2>
<%@ page import= "java.util.* " %>
<%@ page import= "javax.mail.* " %>
<%@ page import= "javax.activation.* " %>
<%@ page import= "javax.mail.internet.* " %>
<%@ page contentType= "text/html;charset=GB2312 " %>
<%
request.setCharacterEncoding( "GB2312 ");
String host = "smtp.gmail.com ";
String rec = request.getParameter( "To ");
String sen = request.getParameter( "From ");
String sub = request.getParameter( "Subject ");
String mess = request.getParameter( "Message ");
String username = "test ";
String password = "123456 ";
boolean sessionDebug = false;
Properties prop = System.getProperties();
prop.put( "mail.host ",host);
prop.put( "mail.transport.protocol ", "smtp ");
prop.put( "mail.smtp.auth ", "true ");
javax.mail.Session mailsess = Session.getDefaultInstance(prop, null);
mailsess.setDebug(sessionDebug);
Message msg = new MimeMessage(mailsess);
msg.setFrom(new InternetAddress(sen));
InternetAddress[] address= {new InternetAddress(rec)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(sub);
msg.setText(mess);
Transport transport = mailsess.getTransport( "smtp ");
transport.connect(host, username, password);
transport.sendMessage(msg,msg.getAllRecipients());
transport.close();
//transport.send(msg);
%>
出错提示:
exception
org.apache.jasper.JasperException: Could not connect to SMTP host: smtp.gmail.com, port: 25
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.servlet.ServletException: Could not connect to SMTP host: smtp.gmail.com, port: 25
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.JavaMail_jsp._jspService(JavaMail_jsp.java:159)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
javax.mail.Service.connect(Service.java:275)
javax.mail.Service.connect(Service.java:156)
org.apache.jsp.JavaMail_jsp._jspService(JavaMail_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
还请帮忙指点指点,谢谢了俄
[解决办法]
楼主
把杀毒软件和防火墙先关一下
我以前发生这样的问题是我的防火墙不让outlook之外的东西访问25端扣的
[解决办法]
哈哈,我也遇到过这样的问题,跟楼上说的一样。
把防火墙关了,就能发送成功啦!
[解决办法]
ee,因该是网络的问题吧
[解决办法]
<%@ page import= "java.util.* " %>
<%@ page import= "javax.mail.* " %>
<%@ page import= "javax.activation.* " %>
<%@ page import= "javax.mail.internet.* " %>
<%@ page contentType= "text/html;charset=GB2312 " %>
这些应该放在 <html> 上边吧?