2013-10-01 17 views
21

Sto usando javax.mail per inviare mail in Java. Ora che una parte del concetto del mio progetto è cambiata, devo inviare una mail senza autenticazione. Dovrò cambiare il mio metodo di createSession():Invia mail in javax.mail senza autenticazione

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

E 'piuttosto ovvio che dovrei cambiare mail.smtp.auth a false, ma che altro dovrei cambiare?

+2

Non aggiungere 'user' e' password' alla 'proprietà' e passare' null' per 'utente' e' password' a 'connect' –

risposta

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

Penso, questo sarebbe sufficiente.

+3

E ovviamente dipende dal fatto che il server sia configurato per permetterti di invia la posta senza prima autenticare. Potrebbe funzionare bene all'interno di una intranet, altrimenti è un invito allo spam. –

+0

Ancora dice 'Autenticazione richiesta. Si prega di contattare l'assistenza – Sami

+1

L'autenticazione è una politica del server. Se il server richiede l'autenticazione, devi fornirlo !! – Kris