用JSP代码发送电子邮件

用JSP代码发送电子邮件,jsp,Jsp,我有一个JSP代码。我试着通过那个发送一封smtp电子邮件。它在以下方面有一个错误: 传送。发送(信息) 有人能帮我吗 代码如下: <%@ page import="java.io.*,java.util.*,javax.mail.*, javax.mail.Service"%> <%@ page import="javax.mail.internet.*,javax.activation.*"%> <%@ page import="javax.servlet

我有一个JSP代码。我试着通过那个发送一封smtp电子邮件。它在以下方面有一个错误:

传送。发送(信息)

有人能帮我吗

代码如下:

 <%@ page import="java.io.*,java.util.*,javax.mail.*, javax.mail.Service"%>
 <%@ page import="javax.mail.internet.*,javax.activation.*"%>
 <%@ page import="javax.servlet.http.*,javax.servlet.*" %>
 <%
 String result;
 // Recipient's email ID needs to be mentioned.
 String to = "email@gmx.com";

 // Sender's email ID needs to be mentioned
 String from = "email@gmx.com";

 // Assuming you are sending email from localhost
 String host = "mail.gmx.com";

 // Get system properties object
 Properties properties = System.getProperties();

 // Setup mail server
 properties.setProperty("mail.smtp.host", host);

 // Get the default Session object.
 Session mailSession = Session.getDefaultInstance(properties);


  // Create a default MimeMessage object.
  MimeMessage message = new MimeMessage(mailSession);
  // Set From: header field of the header.
  message.setFrom(new InternetAddress(from));
  // Set To: header field of the header.
  message.addRecipient(Message.RecipientType.TO,
                           new InternetAddress(to));
  // Set Subject: header field
  message.setSubject("This is the Subject Line!");
  // Now set the actual message
  message.setText("This is actual message");
  // Send message
  Transport.send(message);
  result = "Sent message successfully....";

%>
<html>
<head>
<title>Send Email using JSP</title>
</head>
<body>
<center>
<h1>Send Email using JSP</h1>
</center>
<p align="center">
<% 
out.println("Result: " + result + "\n");
%>
</p>
</body>
</html>
这是一个相当低级的问题。不允许正在执行当前Java运行时环境的操作系统平台指定用户打开到给定主机的网络连接

这可能有许多可能的原因,具体取决于用户的权限、对它的高级控制程度、防火墙设置、使用的操作系统等等。至少,问题不在Java代码中(免责声明:我还没有读过它,整个异常本身已经是答案,所以Java代码中可能仍然存在一些不相关的错误)

我将介绍一些常见的原因,以便您了解应该在哪里寻找解决方案:

  • Web应用程序部署到第三方主机,该主机不允许您的Web应用程序连接除第三方主机之外的任何主机。解决方案:升级帐户,以便您可以使用主机自己的邮件服务器(或者您已经有了它而不需要升级),或者迁移到另一台主机

  • 操作系统平台特定的非管理员用户帐户不允许进行任何网络连接。管理员帐户必须相应地更改用户的帐户设置

  • 操作系统平台安装了防火墙,其配置过于严格。尝试完全禁用防火墙,然后重新测试以排除可疑,然后在必要时重新配置防火墙

请阅读-
 org.apache.jasper.JasperException: An exception occurred processing JSP page /mail.jsp      
 at line 37

 34:   // Now set the actual message
 35:   message.setText("This is actual message");
 36:   // Send message
 37:   Transport.send(message);
 38:   result = "Sent message successfully....";
 39: 
 40: %>


 Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.ja 
 va:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:401)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.ish.system.runtime.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilt     er.java:67)
 root cause

 javax.servlet.ServletException: javax.mail.MessagingException: Could not connect to                       
 SMTP      host: mail.gmx.com, port: 25;
 nested exception is:
java.net.SocketException: Permission denied: connect
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.jav     a:862)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:     791)
org.apache.jsp.mail_jsp._jspService(mail_jsp.java:124)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.ish.system.runtime.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilt     er.java:67)
 root cause

 javax.mail.MessagingException: Could not connect to SMTP host: mail.gmx.com, port: 25;
   nested exception is:
java.net.SocketException: Permission denied: 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)
javax.mail.Service.connect(Service.java:105)
javax.mail.Transport.send0(Transport.java:168)
javax.mail.Transport.send(Transport.java:98)
org.apache.jsp.mail_jsp._jspService(mail_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.ish.system.runtime.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilt     er.java:67)
 root cause

 java.net.SocketException: Permission denied: connect
java.net.PlainSocketImpl.socketConnect(Native Method)
java.net.PlainSocketImpl.doConnect(Unknown Source)
java.net.PlainSocketImpl.connectToAddress(Unknown Source)
java.net.PlainSocketImpl.connect(Unknown Source)
java.net.SocksSocketImpl.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)
java.net.Socket.connect(Unknown Source)
com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
javax.mail.Service.connect(Service.java:275)
javax.mail.Service.connect(Service.java:156)
javax.mail.Service.connect(Service.java:105)
javax.mail.Transport.send0(Transport.java:168)
javax.mail.Transport.send(Transport.java:98)
org.apache.jsp.mail_jsp._jspService(mail_jsp.java:98)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
com.ish.system.runtime.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilt     er.java:67)
javax.mail.MessagingException: Could not connect to SMTP host: mail.gmx.com, port: 25;  
nested exception is: 
java.net.SocketException: Permission denied: connect