发送电子邮件卡在 transport.connect
Send email get stuck at transport.connect
这是代码:
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtps");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "mail.mydomain.com");
properties.put("mail.smtp.port", "465");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.user", "myemail@mydomain.com");
properties.put("mail.smtp.password", "mypassword");
Session sendSession = Session.getInstance(properties);
MimeMessage message = new MimeMessage(sendSession);
message.setFrom(new InternetAddress("myemail@mydomain.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setText(content);
Transport transport = sendSession.getTransport("smtp");
transport.connect("mail.mydomain.com", 465, "mydomain.com@mydomain.com", "mypassword");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
这些是 SSL/TLS 设置:
Outgoing Server: mail.mydomain.com
SMTP Port: 465
执行上面的代码,卡在了:
transport.connect("mail.mydomain.com", 465, "mydomain.com@mydomain.com", "mypassword");
什么也没发生。
为什么卡在 connect
以及如何解决?
尝试将 mail.transport.protocol
值从 smtps
更改为 smtp
。
您正在尝试使用用于 smtp 的端口 465。所以你必须将协议更改为 smtp
。您正在尝试以安全模式启动 TL,但您使用的是简单的 smtp 端口。
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtps");
properties.put("mail.smtp.starttls.enable", "true");
.....
尝试更改并发送邮件。
我发现了问题。
在Transport transport = sendSession.getTransport("smtp");
而不是 smtp
应该是 smtps
感谢所有试图帮助我的人。
这是代码:
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtps");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "mail.mydomain.com");
properties.put("mail.smtp.port", "465");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.user", "myemail@mydomain.com");
properties.put("mail.smtp.password", "mypassword");
Session sendSession = Session.getInstance(properties);
MimeMessage message = new MimeMessage(sendSession);
message.setFrom(new InternetAddress("myemail@mydomain.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setText(content);
Transport transport = sendSession.getTransport("smtp");
transport.connect("mail.mydomain.com", 465, "mydomain.com@mydomain.com", "mypassword");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
这些是 SSL/TLS 设置:
Outgoing Server: mail.mydomain.com
SMTP Port: 465
执行上面的代码,卡在了:
transport.connect("mail.mydomain.com", 465, "mydomain.com@mydomain.com", "mypassword");
什么也没发生。
为什么卡在 connect
以及如何解决?
尝试将 mail.transport.protocol
值从 smtps
更改为 smtp
。
您正在尝试使用用于 smtp 的端口 465。所以你必须将协议更改为 smtp
。您正在尝试以安全模式启动 TL,但您使用的是简单的 smtp 端口。
Properties properties = new Properties();
properties.put("mail.transport.protocol", "smtps");
properties.put("mail.smtp.starttls.enable", "true");
.....
尝试更改并发送邮件。
我发现了问题。
在Transport transport = sendSession.getTransport("smtp");
而不是 smtp
应该是 smtps
感谢所有试图帮助我的人。