我们正在将一些旧代码移至java11。我们正在创建一个smtp客户端。使用java11时,coe编译失败。
error: package sun.net.smtp is not visible
[javac] sun.net.smtp.SmtpClient SMTP = new sun.net.smtp.SmtpClient(SMTP_SERVER);
[javac] ^
[javac] (package sun.net.smtp is declared in module java.base, which
does not export it)
看起来smtp软件包支持已从java11中删除。任何建议都会有所帮助。
问候,
阿克
最佳答案
您可以使用JavaMail API发送电子邮件进行排序。转到下面的链接并下载.jar文件,并将其添加到您的项目中。如果没有,您可以将其添加为Maven依赖项。
https://mvnrepository.com/artifact/javax.mail/mail/1.4.7
与SMTP服务器对话并按以下方式发送电子邮件的示例代码。
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(
Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
message.setSubject("Mail Subject");
String msg = "This is a sample email ";
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(msg, "text/html");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
Transport.send(message);
您的配置可以通过Java属性对象完成
Properties prop = new Properties();
prop.put("mail.smtp.auth", true);
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.host", "smtp.abcmail.com");
prop.put("mail.smtp.port", "25");
prop.put("mail.smtp.ssl.trust", "smtp.abcmail.com");
关于java - 错误:看不到软件包sun.net.smtp,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56683641/