Java 发送电子邮件在transport.connect被卡住
代码如下:Java 发送电子邮件在transport.connect被卡住,java,smtp,jakarta-mail,Java,Smtp,Jakarta Mail,代码如下: Properties properties = new Properties(); properties.put("mail.transport.protocol", "smtps"); properties.put("mail.smtp.starttls.enable", "true"); properties.put("mail.smtp.host", "mail.myd
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
。您正在尝试使用安全模式启动TLs,但您使用的是简单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
感谢所有试图帮助我的人。你如何确定它在连接处停止?@Umeshwaran,我正在使用调试器,它在那里停止。请尝试将mail.smtp.starttls.enable
更改为false,然后尝试发送mail@Umeshwaran,问题仍然存在。请尝试更改属性.put(“mail.transport.protocol”,“smtps”);
到properties.put(“mail.transport.protocol”,“smtp”);
即smtps
到smtp
并尝试发送邮件