Почему JavaMail использует System.getProperties ()? - PullRequest
2 голосов
/ 27 февраля 2012

Зачем нам нужно добавлять свойства вроде

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

в свойствах системы для отправки почты. Почему это должны быть конкретно системные свойства?

Ответы [ 3 ]

7 голосов
/ 27 февраля 2012

На самом деле вам не нужно добавлять их в системные свойства.

Если вы создадите новый экземпляр Properties и заполните его своими атрибутами, он все равно будет работать точно так же.

2 голосов
/ 11 февраля 2015

Как уже говорили другие, они не должны быть системными свойствами. Но следующее может быть причиной того, что многие примеры показывают это следующим образом: Пакет Java Mail поддерживает большое количество параметров / параметров отладки. Например, https://javamail.java.net/nonav/docs/api/com/sun/mail/smtp/package-summary.html перечисляет 50 различных настроек только для поставщика SMTP.

Предположим, вы хотите установить эту опцию: "mail.smtp.ssl.checkserveridentity". Если вы используете системные свойства в качестве отправной точки, то вы можете перезапустить процесс Java с помощью

-Dmail.smtp.ssl.checkserveridentity=true 

чтобы изменить опцию. Если вы создаете свой объект Properties с нуля, вам может потребоваться изменить код, чтобы установить этот параметр.

2 голосов
/ 27 февраля 2012

Они НЕ должны быть Системными Свойствами. Они могут быть java.util.Properties .

...