3

为什么我们需要添加类似的属性

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);

到系统属性发送邮件。为什么它应该是专门的系统属性?

4

3 回答 3

7

您实际上不需要将它们添加到系统属性中。

如果您创建一个新的 Properties 实例并使用您的属性填充它,它仍然可以正常工作。

于 2012-02-27T15:28:05.367 回答
2

它们不需要是系统属性。它们可以是java.util.Properties

于 2012-02-27T15:31:11.083 回答
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 对象,那么您可能需要更改代码来设置选项。

于 2015-02-10T22:22:50.350 回答