Я пытаюсь отправить почту на Java, и я искал ее, я нашел часть кода, и я попытался запустить его, но он дает мне это исключение: Я использую интеграцию Spring Hibernate В Project. В этой работе у меня есть xml-файл для извлечения bean, jsp-страницы, содержащей кнопку, контроллер и класс java.Исключение произошло при отправке почты весной
Exception in MAILMAIL.JAVA:org.springframework.mail.MailSendException; nested exceptions (0) are:
10:11:28,979 ERROR [STDERR] org.springframework.mail.MailSendException; nested exceptions (0) are:
10:11:28,979 ERROR [STDERR] at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.j ava:419)
10:11:28,979 ERROR [STDERR] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.jav a:308)
10:11:28,979 ERROR [STDERR] at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.jav a:297)
10:11:28,979 ERROR [STDERR] at com.sample.other.MailMail.sendMail(MailMail.java:24)
10:11:28,979 ERROR [STDERR] at com.sample.web.MailController.handleRequestInternal(MailController.java:61)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractCon troller.java:153)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(Simple ControllerHandlerAdapter.java:48)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.j ava:861)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.ja va:795)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet .java:476)
10:11:28,979 ERROR [STDERR] at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:44 1)
10:11:28,980 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
10:11:28,980 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:290)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:206)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:9 6)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilt erChain.java:235)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain. java:206)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:2 35)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:1 91)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociatio nValve.java:190)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(Security ContextEstablishmentValve.java:126)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityC ontextEstablishmentValve.java:70)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
10:11:28,980 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionVa lve.java:158)
10:11:28,980 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109 )
10:11:28,980 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
10:11:28,980 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
10:11:28,980 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Pr otocol.java:601)
10:11:28,980 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
10:11:28,980 ERROR [STDERR] at java.lang.Thread.run(Thread.java:745)
10:11:28,980 ERROR [STDERR] Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.SocketException: Permission denied: connect
10:11:28,980 ERROR [STDERR] at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
10:11:28,981 ERROR [STDERR] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
10:11:28,981 ERROR [STDERR] at javax.mail.Service.connect(Service.java:275)
10:11:28,981 ERROR [STDERR] at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.j ava:389)
10:11:28,981 ERROR [STDERR] ... 32 more
10:11:28,981 ERROR [STDERR] Caused by: java.net.SocketException: Permission denied: connect
10:11:28,981 ERROR [STDERR] at java.net.DualStackPlainSocketImpl.connect0(Native Method)
10:11:28,981 ERROR [STDERR] at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79 )
10:11:28,981 ERROR [STDERR] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
10:11:28,981 ERROR [STDERR] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:2 00)
10:11:28,981 ERROR [STDERR] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
10:11:28,981 ERROR [STDERR] at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
10:11:28,981 ERROR [STDERR] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
10:11:28,981 ERROR [STDERR] at java.net.Socket.connect(Socket.java:579)
10:11:28,981 ERROR [STDERR] at java.net.Socket.connect(Socket.java:528)
10:11:28,981 ERROR [STDERR] at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
10:11:28,981 ERROR [STDERR] at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
10:11:28,981 ERROR [STDERR] at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
10:11:28,981 ERROR [STDERR] ... 35 more
index.jsp:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h1>Mail A Link</h1>
<form name="mailsend" method="post" action="mailsend.do" id="employeeCreation">
<input type="submit" name="mailbutton" value="SEND LINK" id="mailbutton">
</form>
</body>
</html>
XML:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="requestContextAttribute" value="rc"/>
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<bean id="MailController" class="com.sample.web.MailController">
<property name="successView"><value>Home</value></property>
<property name="failedView"><value>../../index</value></property>
<property name="updateView"><value>Home</value></property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="mailsend.do">MailController</prop>
<!-- <prop key="Login.do">UserController</prop> -->
</props>
</property>
</bean>
<bean id="mailSender"
class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="username" value="[email protected]" />
<property name="password" value="sender'spassword" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.socketFactory.port">587</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.
SSLSocketFactory</prop>
<prop key="mail.smtp.port">587</prop>
</props>
</property>
</bean>
<bean id="mailMail" class="com.sample.other.MailMail">
<property name="mailSender" ref="mailSender" />
</bean>
MailController.java:
public ModelAndView handleRequestInternal(HttpServletRequest request,HttpServletResponse response) throws Exception
{
try{
Resource r=new ClassPathResource("example-servlet.xml");
BeanFactory b=new XmlBeanFactory(r);
MailMail m=(MailMail)b.getBean("mailMail");
String sender="[email protected]";//write here sender gmail id
String receiver="[email protected]";//write here receiver id
m.sendMail(sender,receiver,"hi","welcome");
System.out.println("success");
}
catch(Exception e){
System.out.println("An Exception Occured:"+e);
e.printStackTrace();
}
}
MailMail.java:
public void sendMail(String from, String to, String subject, String msg) {
try{
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(msg);
mailSender.send(message);
}catch(Exception e){
System.out.println("Exception in MAILMAIL.JAVA:"+e);
e.printStackTrace();
}
}
Пожалуйста, помогите мне решить issue.I попыталась так много кодов из google.Finally получила такое же исключение:
10:11:28,980 ERROR [STDERR] Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 587;
nested exception is:
java.net.SocketException: Permission denied: connect
10:11:28,980 ERROR [STDERR] at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
10:11:28,981 ERROR [STDERR] at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
10:11:28,981 ERROR [STDERR] at javax.mail.Service.connect(Service.java:275)
10:11:28,981 ERROR [STDERR] at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.j ava:389)
10:11:28,981 ERROR [STDERR] ... 32 more
Как решить эту проблему Если у вас есть какой-либо другой способ, чтобы отправить сообщение к действительной почте с весной, Тогда, пожалуйста, предоставьте код. Thank you
не может у изменить порт не 587 до 25? – soorapadman
Можете ли вы попробовать следовать этому [учебнику MKYong] (http://www.mkyong.com/spring/spring-sending-e-mail-via-gmail-smtp-server-with-mailsender/) _exactly_? Ваша конфигурация выглядит несколько иначе, чем та, которая используется в учебнике. –
, если вы работаете на порту 587, требуется tls, поэтому я предполагаю, что вы должны добавить свой конфиг true –
BadK