I'm trying to send mail in Java, and I googled it I found some piece of code and I tried to run it but it gives me this exception: I am using Spring Hibernate Integration On Projects.In this work,I have xml file to fetch bean,jsp page containing a button,controller and a java class.
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="sender@gmail.com" />
<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="sender@gmail.com";//write here sender gmail id
String receiver="receiver@gmail.com";//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();
}
}
Please Help me to solve the issue.I tried so many codes from google.Finally got the same exception:
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
How to solve it?If you have any another way to send a message to a valid mailid with spring,Then please provide the code. Thank You