2013-01-21 32 views

Odpowiedz

11
private static Properties props; 
private static Session session; 
static { 
    props = new Properties(); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.port", "587"); 
    props.put("mail.smtp.host", "m.outlook.com"); 
    props.put("mail.smtp.auth", "true"); 
    session = Session.getInstance(props, new Authenticator() { 
     @Override 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("office365 email address" 
        "office365 password"); 
     } 
    }); 

} 
+0

Jestem stoi podobny problem może proszę wyjaśnić swoje rozwiązanie ?? ? –

+0

Problem, przed którym stoję, to mój wątek utknął przed wysłaniem poczty, próbowałem wielu rozwiązań z Internetu, z których żaden nie działał, nie mam też żadnego wyjątku. Nie mogę wysyłać poczty, byłoby pomocne, gdybyś podzielił się swoją wiedzą .. :) dzięki –

+1

Dla mnie to zadziałało dopiero po zmianie '587' na' "587" '. W przeciwnym razie JavaMail próbował połączyć się przez port 25. – Glorfindel

0

Jedyny błąd, który ja widząc w kodzie jest nieprawidłowy Host

javaMailProperties.setProperty("mail.smtp.from", "[email protected]"); 
    javaMailProperties.setProperty("mail.smtp.user", "[email protected]"); 
    javaMailProperties.setProperty("mail.smtp.password","Password"); 
    javaMailProperties.setProperty("mail.smtp.host", "smtp.office365.com"); 
    javaMailProperties.setProperty("mail.smtp.port", "587"); 
    javaMailProperties.setProperty("mail.smtp.auth", "true"); 
    javaMailProperties.setProperty("mail.smtp.starttls.enable", "true"); 

Zmień gospodarz będzie wszystko dobrze.

4

przykład kodu robocze:

Email email = new SimpleEmail(); 

email.setHostName("smtp.office365.com"); 
email.setSmtpPort(587); 
email.setAuthenticator(new DefaultAuthenticator("[email protected]", "****")); 
email.setStartTLSEnabled(true); 
try { 
    email.setFrom("[email protected]"); 
    email.setSubject("Job Failure"); 
    email.setDebug(true); 
    email.setMsg("This is a test mail ... :-)"); 
    email.addTo("[email protected]"); 
    email.send(); 
} catch (EmailException e) { 
    e.printStackTrace(); 
} 
+0

Możesz chcieć określić, że używa to [commons-email] (https://commons.apache.org/proper/commons-email/). – JBert

3

A wiosną-boot, wystarczy dodać do swojej application.properties:

spring.mail.host = smtp.office365.com 
spring.mail.username = [email protected] 
spring.mail.password = s3cr3t 
spring.mail.port = 587 
spring.mail.properties.mail.smtp.auth = true 
spring.mail.properties.mail.smtp.starttls.enable = true 
Powiązane problemy