Java 发送邮件报错: 'exception reading response: javax.net.ssl.SSLException: 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' 替换为适当的值。
原文地址: https://www.cveoy.top/t/topic/qDDb 著作权归作者所有。请勿转载和采集!