为什么我们需要添加像
这样的属性Properties props = System.getProperties();
props.put("mail.smtp.starttls.enable", "true"); // added this line
props.put("mail.smtp.host", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", "587");
Session session = Session.getDefaultInstance(props, null);
发送邮件的系统属性。为什么它应该是特定的系统属性?
答案 0 :(得分:7)
您实际上不需要将它们添加到系统属性中。
如果您创建一个新的Properties实例并使用您的属性填充它,它仍然可以正常工作。
答案 1 :(得分:2)
他们不需要是系统属性。它们可以是java.util.Properties。
答案 2 :(得分:2)
正如其他人所说,他们不需要成为系统属性。但是,以下可能是许多示例以这种方式显示的原因:Java Mail包支持大量设置/调试选项。例如,https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html仅列出了SMTP提供商的50种不同设置。
假设您要设置此选项:" mail.smtp.ssl.checkserveridentity"。如果使用系统属性作为起点,则可以使用
重新启动Java进程-Dmail.smtp.ssl.checkserveridentity=true
更改选项。如果您从头开始构建Properties对象,则可能需要更改代码来设置选项。