邮件发送失败,SMTP无法连接 [英] Mail Sending fails with SMTP fails to connect
问题描述
我正在尝试使用以下程序发送邮件,但收到以下错误消息.
I am trying to send a mail using the below program but I am getting the following error message.
public class SMTPTest {
//private Logger log = Logger.getLogger(this.getClass());
public boolean sendSimpleMail(String to, String subject, String body) {
Properties props = new Properties();
props.put("mail.smtp.user", "amrita_test");
props.put("mail.smtp.password", "aview");
props.put("mail.smtp.host", "192.168.0.25");
props.put("mail.smtp.port", "25");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
// props.put("mail.smtp.debug", "true");
props.put("mail.smtp.debug", "false");
props.put("mail.smtp.socketFactory.port", "425");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
try {
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
// session.setDebug(true);
MimeMessage msg = new MimeMessage(session);
String content = body;
msg.setSubject(subject);
msg.setFrom(new InternetAddress("buddhiedge@gmail.com"));
Address[] addresses = new Address[1];
addresses[0] = new InternetAddress("buddhiedge@gmail.com");
msg.setReplyTo(addresses);
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
msg.setContent(content, "text/html");
Transport.send(msg);
return true;
} catch (Exception mex) {
mex.printStackTrace();
System.out.println("Error in sending mail :: " + mex.getMessage());
return false;
}
}
private class SMTPAuthenticator extends Authenticator {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("amrita_test",
"aview");
}
}
public static void main(String args[]){
SMTPTest test=new SMTPTest();
test.sendSimpleMail("praveenpkd@gmail.com", "subject", "body");
}
}
错误是: javax.mail.MessagingException:无法连接到SMTP主机:192.168.0.25,端口:25;
Error is: javax.mail.MessagingException: Could not connect to SMTP host: 192.168.0.25, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1282)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:370)
at javax.mail.Service.connect(Service.java:297)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at SMTPTest.sendSimpleMail(SMTPTest.java:45)
at SMTPTest.main(SMTPTest.java:62)
Caused by: java.net.ConnectException: Connection timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:550)
at com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:141)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:232)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:163)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1250)
... 8 more
但是SMTP服务器或连接没有问题. telnet 192.168.0.25 25 连接良好. 如何解决这个问题.
But the There is no problem with SMTP Server or connection. telnet 192.168.0.25 25 connects fine. How to solve this.
推荐答案
请尝试通过从代码中仅删除以下内容来再次发送邮件.
Please try to send mail again by removing only the following from your code.
props.put("mail.smtp.socketFactory.port", "425");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
通常情况下,例外
java.net.ConnectException:连接超时
java.net.ConnectException: Connection timed out
仅当Java邮件无法在指定端口连接到提到的服务器时,才会引起
.最可能的原因是Java邮件尝试连接到会话属性中指定的425端口.
is caused only if the java mail is not able to connect to the mentioned server in the specified port. The most probable cause would be that java mail tries to connect to the 425 port specified in your session properties.
这篇关于邮件发送失败,SMTP无法连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!