解决 Gmail 邮件发送 Java 程序提示 javax.net.ssl 错误:详细原因和代码示例
使用 Java 发送 Gmail 邮件时遇到 'javax.net.ssl' 错误是常见问题。这通常是由以下原因导致:
- 非受信任的 SSL 证书: 您的程序可能使用了一个不受信任的 SSL 证书。
- SSL 证书配置错误: SSL 证书可能没有正确配置。
以下是一个示例代码,可以帮助您解决此问题:
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendEmail {
public static void main(String[] args) {
String to = 'recipient@email.com';
String from = 'sender@email.com';
String host = 'smtp.gmail.com';
String password = 'yourpassword';
String port = '587';
Properties properties = System.getProperties();
properties.setProperty('mail.smtp.host', host);
properties.setProperty('mail.smtp.port', port);
properties.setProperty('mail.smtp.starttls.enable', 'true');
properties.setProperty('mail.smtp.auth', 'true');
Session session = Session.getDefaultInstance(properties);
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject('Test Email from Java');
message.setText('Hello, this is a test email from Java!');
Transport transport = session.getTransport('smtp');
transport.connect(host, from, password);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
System.out.println('Email sent successfully!');
} catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
请将以下变量替换为您的实际值:
to:收件人的电子邮件地址from:发件人的电子邮件地址host:电子邮件提供商的 SMTP 服务器主机名password:您的电子邮件帐户密码port:SMTP 服务器端口号
如果问题仍然存在,请检查您的 SSL 证书是否正确配置,并确保您使用的是受信任的证书。
网站使用 HTTPS 是否意味着 SSL 已启用?
是的,网站使用 HTTPS 协议表示 SSL 已启用。 HTTPS 代表 Hypertext Transfer Protocol Secure,它使用 SSL/TLS (Secure Sockets Layer/Transport Layer Security) 来加密网站与用户之间的通信。
原文地址: https://www.cveoy.top/t/topic/nOvf 著作权归作者所有。请勿转载和采集!