java 发送邮件报错 exception reading response javaxnetsslSSLException Unrecognized SSL message plaintext connection
这个错误通常是由于尝试在SSL端口(如465)上发送非SSL连接而引起的。要解决这个问题,您需要确保使用正确的端口和协议进行邮件发送。
在Java中使用JavaMail API发送SSL加密的邮件,您可以按照以下步骤进行操作:
-
导入所需的JavaMail库文件。您可以从Oracle的官方网站上下载JavaMail API库文件,并将其添加到您的Java项目中。
-
设置JavaMail会话属性,以使用SSL加密:
Properties props = new Properties();
props.put("mail.smtp.host", "your_smtp_host");
props.put("mail.smtp.socketFactory.port", "your_smtp_port");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "your_smtp_port");
请将 your_smtp_host 和 your_smtp_port 替换为您的SMTP服务器主机名和端口号。
- 创建一个
javax.mail.Session对象,使用上述属性:
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your_email", "your_password");
}
});
请将 your_email 和 your_password 替换为您的发件人电子邮件地址和密码。
- 创建一个
javax.mail.Message对象,并设置相关属性,如发件人、收件人、主题和内容:
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your_email"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("recipient_email"));
message.setSubject("your_subject");
message.setText("your_content");
请将 your_email 替换为您的发件人电子邮件地址,recipient_email 替换为收件人电子邮件地址,your_subject 替换为邮件主题,your_content 替换为邮件内容。
- 发送邮件:
Transport.send(message);
这样,您就可以使用SSL加密发送邮件了。确保将 your_smtp_host、your_smtp_port、your_email、your_password、recipient_email、your_subject 和 your_content 替换为适当的值
原文地址: http://www.cveoy.top/t/topic/iXDM 著作权归作者所有。请勿转载和采集!