2012-02-03 3 views
-1

У меня есть код JSP. Я пытаюсь отправить smtp-сообщение по электронной почте. Он имеет ошибку в:отправка по электронной почте JSP код

Transport.send (message); ,

Может кто-нибудь мне помочь?

вот код:

<%@ 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 protected]"; 

// Sender's email ID needs to be mentioned 
String from = "[email protected]"; 

// 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> 

PS. Я использую mail.jar и activation.jar в пути к классу. Я буду признателен вам за помощь.

Вот сообщения об ошибках, которые я получил:

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) 
+0

Пожалуйста, прочтите - http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files – adatapost

ответ

1
javax.mail.MessagingException: Could not connect to SMTP host: mail.gmx.com, port: 25; 
nested exception is: 
java.net.SocketException: Permission denied: connect 

Это проблема довольно низкий уровень. Пользователю с установленной платформой операционной системы, выполняющему текущую среду выполнения Java, не разрешено открывать сетевое соединение с данным хостом.

Это может быть множество возможных причин, в зависимости от прав пользователя, степень контроля над ним на более высоком уровне, настройки брандмауэра, используемая операционная система и т. Д. По крайней мере, проблема не в вашем Java-коде (отказ от ответственности: я его не читал, все исключение уже является ответом самостоятельно, поэтому у вас могут быть некоторые несвязанные ошибки в вашем Java-коде).

Назовем некоторые общие причины к тому, что вы понимаете, где вы должны искать решение:

  • WebApplication развертываются на 3 хозяин партии, которая не позволяет вашему WebApplication подключать любые хосты кроме самого хоста третьей стороны. Решение: обновите учетную запись, чтобы вы могли использовать собственный почтовый сервер хоста (или, возможно, у вас уже есть его без необходимости обновления), или перейти на другой хост.

  • Учетная запись пользователя, не предназначенная для конкретной учетной записи операционной системы, не допускается к сетевым соединениям. Учетная запись администратора должна соответствующим образом изменять настройки учетной записи пользователя.

  • Платформа операционной системы имеет брандмауэр, установленный со слишком жесткой конфигурацией. Попробуйте полностью отключить брандмауэр и повторите проверку, чтобы исключить его из подозрительности, а затем при необходимости перенастроить брандмауэр.

Смежные вопросы