Я пытаюсь отправить электронное письмо в tomcat, но всегда получаю
Тайм-аут соединения: подключить
на java.net.DualStackPlainSocketImpl.connect0 (собственный метод)
в java.net.DualStackPlainSocketImpl.socketConnect (DualStackPlainSocketImpl.java:79)
на java.net.AbstractPlainSocketImpl.doConnect (AbstractPlainSocketImpl.java:350)
в java.net.AbstractPlainSocketImpl.connectToAddress (AbstractPlainSocketImpl.java:206)
в java.net.AbstractPlainSocketImpl.connect (AbstractPlainSocketImpl.java:188)
в java.net.PlainSocketImpl.connect (PlainSocketImpl.java:172)
в java.net.SocksSocketImpl.connect (SocksSocketImpl.java:392)
на java.net.Socket.connect (Socket.java:589)
на java.net.Socket.connect (Socket.java:538)
на sun.net.NetworkClient.doConnect (NetworkClient.java:180)
at sun.net.NetworkClient.openServer (NetworkClient.java:136)
at sun.net.smtp.SmtpClient.openServer (SmtpClient.java:128)
at sun.net.smtp.SmtpClient. (SmtpClient.java:200)
на sun.net.www.protocol.mailto.MailToURLConnection.connect (MailToURLConnection.java:86)
на sun.net.www.protocol.mailto.MailToURLConnection.getOutputStream (MailToURLConnection.java:97)
на de.mytoys.group.pfone.jira.statistic.Mailing.sendMail (Mailing.java:49)
на de.mytoys.group.pfone.jira.statistic.BuildStatistics.sendMail (BuildStatistics.java:527)
на de.mytoys.group.pfone.jira.statistic.BuildStatistics.doGet (BuildStatistics.java:91)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:621)
на javax.servlet.http.HttpServlet.service (HttpServlet.java:722)
в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:304)
в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:210)
в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:240)
в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:164)
в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:164)
в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:100)
в org.apache.catalina.valves.AccessLogValve.invoke (AccessLogValve.java:562)
в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:118)
в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:395)
в org.apache.coyote.http11.Http11Processor.process (Http11Processor.java:250)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:188)
в org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process (Http11Protocol.java:166)
в org.apache.tomcat.util.net.JIoEndpoint $ SocketProcessor.run (JIoEndpoint.java:302)
в java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142)
в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617)
at java.lang.Thread.run (Thread.java:745)
Я попробовал это с кодом соединения MailToURLC:
public static void sendMail(String from, String to, String subject, String body){
try{
System.setProperty("mail.host", "localhost");
URL u = new URL("mailto:"+to);
MailToURLConnection con = (MailToURLConnection) u.openConnection();
DateFormat df = new SimpleDateFormat("E, d MMM yyyy H:mm:ss Z");
Date d = new Date();
String dt = df.format(d);
String mid = d.getTime()+from.substring(from.indexOf('@'));
String message = "Subject: "+subject+"\r\n"
+ "Date: " +dt+ "\r\n"
+ "From: "+from+"\r\n"
+ "To: <"+to+">\r\n"
+ "\r\n"
+ body.replace("\n", "\r\n");
System.out.println(u);
System.out.println(message);
OutputStream os = con.getOutputStream();
OutputStreamWriter w = new OutputStreamWriter(os);
w.write(message);
w.flush();
w.close();
con.close();
System.out.println("gesendet");
}
catch(Exception e){
e.printStackTrace();
}
Но он не может отправить мое сообщение. Я также попробовал это с JavaMail, но там также не удается отправить почту.
Может кто-нибудь сказать мне, что я делаю неправильно?