Почему JavaMail не аутентифицируется? - PullRequest
3 голосов
/ 09 февраля 2010

Сегодня мы узнали, что для двух наших клиентов JavaMail не проходит проверку подлинности, и поэтому наш продукт не может отправлять электронную почту. Мы отправляли электронные письма через наш собственный сервер в течение многих лет, а также для нескольких других клиентов, и мы подумали, что используем аутентификацию для всех них.

Код работает следующим образом:

    transport = session.getTransport("smtp");
    transport.connect(hostName, port, user, password);

Согласно документации здесь , JavaMail должен использовать аутентификацию, если мы использовали эту форму метода connect (). Мы не устанавливаем никаких свойств, но если я правильно читаю эту страницу, нам не нужно.

Мы используем mail.jar из JBoss 4.2.1.GA.

Что нам нужно сделать по-другому?

Обновление : если я использую другой метод на этой странице документации (настройка свойства mail.smtp.auth и предоставление Authenticator), аутентификация, наконец, работает. Но что мы делали не так с этим методом?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2010

Попробуйте props.put("mail.debug", "true"); для возможной информации отладки, которая даст вам больше понимания.

Кроме того, если это окно Windows, посмотрите, работает ли брандмауэр или антивирус: http://forums.sun.com/thread.jspa?threadID=590866

1 голос
/ 16 февраля 2010

Я наконец-то обнаружил, что звоню:

transport.send(message, message.getAllRecipients());

, который является статическим методом, вместо:

transport.sendMessage(message, message.getAllRecipients());

Я думаю, именно поэтому он не был аутентифицирован, поэтому я думаю, что это реальный ответ. Помогло бы, если бы я опубликовал этот кусок кода, но я понятия не имел, в чем проблема. Не могу понять, почему Transport.send () является статическим методом, но если вы знаете, пожалуйста, , скажите мне .

...