2016-01-14 179 views
2

我正在爲使用hotmail帳戶發送電子郵件做一個Web應用程序。這是我的代碼:使用hotmail帳戶使用Java發送電子郵件

props.put("mail.transport.protocol", "smtp"); 
props.put("mail.smtp.host", "smtp.live.com"); 
props.put("mail.smtp.auth", true); 
props.put("mail.smtp.port", "587"); 
props.put("mail.smtp.user", "[email protected]"); 
props.put("mail.smtp.pwd", pass); 
props.put("mail.debug", true); 
props.put("mail.smtp.starttls.enable", "true"); 

Session session = Session.getDefaultInstance(props); 

session.setDebug(true); 

try { 
    MimeMessage mimeMessage = new MimeMessage(session); 
    mimeMessage.setFrom(new InternetAddress("[email protected]")); 
    mimeMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("[email protected]")); 
    mimeMessage.setSubject(subject); 
    mimeMessage.setContent(message, "text/html; charset=UTF-8"); 
    mimeMessage.setSentDate(new Date()); 

    SMTPTransport transport = (SMTPTransport) session.getTransport("smtp"); 
    transport.connect("smtp.live.com", "[email protected]", pass); 
    transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients()); 
    transport.close(); 
} catch (MessagingException e) { 
    ret = false;} 

當我在當地一切正常使用此代碼,但是當我在我的託管服務器上部署我的應用程序出現在後續跟蹤:

DEBUG: setDebug: JavaMail version 1.4.7 
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle] 
DEBUG SMTP: useEhlo true, useAuth true 
DEBUG SMTP: trying to connect to host "smtp.live.com", port 587, isSSL false 
220 BLU436-SMTP170.smtp.hotmail.com Microsoft ESMTP MAIL Service, Version: 8.0.9200.16384 ready at Thu, 14 Jan 2016 00:04:21 -0800 
DEBUG SMTP: connected to host "smtp.live.com", port: 587 

EHLO sbi02.namesservers.net 
250-BLU436-SMTP170.smtp.hotmail.com Hello [37.187.179.160] 
250-TURN 
250-SIZE 41943040 
250-ETRN 
250-PIPELINING 
250-DSN 
250-ENHANCEDSTATUSCODES 
250-8bitmime 
250-BINARYMIME 
250-CHUNKING 
250-VRFY 
250-TLS 
250-STARTTLS 
250 OK 
DEBUG SMTP: Found extension "TURN", arg "" 
DEBUG SMTP: Found extension "SIZE", arg "41943040" 
DEBUG SMTP: Found extension "ETRN", arg "" 
DEBUG SMTP: Found extension "PIPELINING", arg "" 
DEBUG SMTP: Found extension "DSN", arg "" 
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" 
DEBUG SMTP: Found extension "8bitmime", arg "" 
DEBUG SMTP: Found extension "BINARYMIME", arg "" 
DEBUG SMTP: Found extension "CHUNKING", arg "" 
DEBUG SMTP: Found extension "VRFY", arg "" 
DEBUG SMTP: Found extension "TLS", arg "" 
DEBUG SMTP: Found extension "STARTTLS", arg "" 
DEBUG SMTP: Found extension "OK", arg "" 
STARTTLS 
220 2.0.0 SMTP server ready 
EHLO sbi02.namesservers.net 
250-BLU436-SMTP170.smtp.hotmail.com Hello [37.187.179.160] 
250-TURN 
250-SIZE 41943040 
250-ETRN 
250-PIPELINING 
250-DSN 
250-ENHANCEDSTATUSCODES 
250-8bitmime 
250-BINARYMIME 
250-CHUNKING 
250-VRFY 
250-AUTH LOGIN PLAIN XOAUTH2 
250 OK 
DEBUG SMTP: Found extension "TURN", arg "" 
DEBUG SMTP: Found extension "SIZE", arg "41943040" 
DEBUG SMTP: Found extension "ETRN", arg "" 
DEBUG SMTP: Found extension "PIPELINING", arg "" 
DEBUG SMTP: Found extension "DSN", arg "" 
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" 
DEBUG SMTP: Found extension "8bitmime", arg "" 
DEBUG SMTP: Found extension "BINARYMIME", arg "" 
DEBUG SMTP: Found extension "CHUNKING", arg "" 
DEBUG SMTP: Found extension "VRFY", arg "" 
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH2" 
DEBUG SMTP: Found extension "OK", arg "" 
DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
DEBUG SMTP: AUTH LOGIN command trace suppressed 
DEBUG SMTP: AUTH LOGIN failed 
535 5.0.0 Authentication Failed 

我敢肯定,該帳戶憑據是正確的,但驗證失敗。 另外我不得不說,當我嘗試這樣做時,我收到一封微軟的電子郵件,說有欺騙性的嘗試開始會話,但是當我在本地執行代碼時,我沒有收到此電子郵件。 我看了頁面帳戶信息和securty &私有部分,看到我最近的活動出現挑戰安全關於這個嘗試發送電子郵件。在這些信息中,設備和平臺是未知的,IP是我託管的。 有沒有辦法做到這一點?

回答

0

我只找到了解決我的問題的可能方案。我已在帳戶中啓用了兩步驗證。當啓用此選項時,hotmail會爲您提供創建應用程序密碼的選項。此密碼是我在應用程序中使用的密碼,而不是Hotmail帳戶的真實密碼。該解決方案也適用於Gmail帳戶。

相關問題