2013-10-01 4 views
21

Я использую javax.mail для отправки писем в Java. Теперь, когда часть концепции моего проекта изменилась, я должен отправить почту без аутентификации. Я должен изменить свой CreateSession() метод:Отправлять почту в javax.mail без аутентификации

private void createSession() { 
    properties.put("mail.smtp.auth", "true"); 
    properties.put("mail.smtp.starttls.enable", "true"); 
    properties.put("mail.smtp.host", server); 
    properties.put("mail.smtp.port", port); 

    session = Session.getInstance(properties, new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(username, password); 
     } 
    }); 
} 

Это довольно очевидно, что я должен изменить mail.smtp.auth к false, но что еще я должен изменить?

+2

Не добавляйте 'user' и' password' в 'свойство' и передайте' null' для 'user' и' password' для 'connect' –

ответ

17
private void createSession() { 
    properties.put("mail.smtp.auth", "false"); 
    //Put below to false, if no https is needed 
    properties.put("mail.smtp.starttls.enable", "true"); 
    properties.put("mail.smtp.host", server); 
    properties.put("mail.smtp.port", port); 

    session = Session.getInstance(properties); 
} 

Думаю, этого было бы достаточно.

+3

И, конечно, это зависит от того, настроен ли ваш сервер, чтобы вы могли отправьте почту без проверки подлинности. Это может работать нормально внутри интрасети, иначе это приглашение на спам. –

+0

Все еще говорит 'Требуется аутентификация. Обратитесь в службу поддержки – Sami

+1

. Аутентификация - это политика сервера. Если сервер требует аутентификации - вам нужно предоставить его! – Kris

Смежные вопросы