Java: отправка письма через SMTP на внешний сервер

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

    Properties properties = new Properties();
    properties.setProperty("mail.transport.protocol", "smtp");
    properties.put("mail.smtp.host", par.host);
    if (par.port != null) {
        properties.put("mail.smtp.port", par.port);
    }
    properties.put("mail.smtp.auth", "true");
    properties.put("mail.smtp.ehlo", "false");
    properties.put("mail.smtp.user", par.user);
    properties.put("mail.smtp.password", par.password);
    if (par.isSsl) {
        properties.put("mail.smtp.ssl.enable", "true");
        properties.put("mail.smtp.socketFactory.port", par.sslPort);
        properties.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
    } else {
        properties.put("mail.smtp.starttls.enable", "true");
    }

Вот что передаю в метод:

{
  "host":"company-exch.company.ru",
  "user":"[email protected]",
  "password":"password",
  "from":"[email protected]",
  "to":["[email protected]", "[email protected]"],
  "subject":"subj",
  "body":"body"
}

Когда шлю письмо с внутреннего почтового ящика на другой внутренний почтовый ящик, то всё доходит. Если шлю письмо на яндекс, гугл, мэйлру - возвращает ошибку "550 5.7.1 Unable to relay".
Админ говорит, что внешний трафик не фильтруется и всё должно доходить.
Что я делаю не так?

Если же я пытаюсь послать письмо с яндекса:

{
    "host":"smtp.yandex.ru",
    "user":"[email protected]",
    "password":"password",
    "is_ssl":true,
    "ssl_port":"465",
    "from":"[email protected]",
    "to":["[email protected]"],
    "subject":"Lorem Ipsum",
    "body":"Lorem ipsum dolor sit amet, consectetur adipiscing elit."
}

То выходит другая ерунда: "503 5.5.4 Error: send AUTH command first."
(что интересно, три месяца назад, когда я писал службу, на этом яндексовском ящике всё работало, а теперь вдруг перестало)
Как я должен сделать авторизацию? Все джавовские гайды обходятся строкой properties.put("mail.smtp.auth", "true"), как будто этого достаточно.


Ответы (0 шт):