2017-11-21 18 views
1

正常に動作するgmailでサンプルプログラムを試してみましたが、主にサーバーとポート名を変更してOutlookを修正しようとしました。以下のようなエラーが発生しました:SMTPホストの接続エラー:smtp.outlook.com、ポート:25

javax.mail.MessagingException:SMTPホストに接続できませんでした:smtp.outlook.com、port:25;ネストされた例外は次のとおりです。 javax.net.ssl.SSLException:認識されないSSLメッセージ、平文接続?ここ

は、以下のように私のコードです:

package mailsend; 

import javax.mail.Authenticator; 
import java.util.Properties; 

import javax.mail.Message; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 



public class Outlook { 
    final String senderEmailID = "xxx"; 
    final String senderPassword = "xxx"; 
    final String emailSMTPserver = "smtp.outlook.com"; 
    //final String emailSMTPserver = "Smtp.live.com"; 
    final String emailServerPort = "25"; 
    String receiverEmailID = null; 
    static String emailSubject = "Test Mail"; 
    static String emailBody = ":)"; 

    //mail.smtp.ssl.enable = "true"; 
    public Outlook(String receiverEmailID, String Subject, String Body) { 
     this.receiverEmailID = receiverEmailID; 
     this.emailSubject = Subject; 
     this.emailBody = Body; 
     Properties props = new Properties(); 
     //System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); 
     props.put("mail.smtp.user", senderEmailID); 
     props.put("mail.smtp.host", emailSMTPserver); 
     props.put("mail.smtp.port", emailServerPort); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.socketFactory.port", emailServerPort); 
     props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
     props.put("mail.smtp.socketFactory.fallback", "false"); 
     props.put("mail.smtp.ssl.enable", "true"); 
     /*prop key="mail.smtp.starttls.enable" */ 
     SecurityManager security = System.getSecurityManager(); 
     //mail.smtp.ssl.enable "true" 

     try { 
      // SMTPAuthenticator auth = new SMTPAuthenticator(); 
      Session session = Session.getInstance(props, new SMTPAuthenticator("xxx", xxx")); 
      MimeMessage msg = new MimeMessage(session); 
      msg.setText(emailBody); 
      msg.setSubject(emailSubject); 
      msg.setFrom(new InternetAddress(senderEmailID)); 
      msg.addRecipient(Message.RecipientType.TO, new InternetAddress(receiverEmailID)); 
      Transport.send(msg); 
      //sendMessage(msg, msg.getAllRecipients()); 
      System.out.println("Message send Successfully:)"); 
     } 

     catch (Exception mex) { 
      mex.printStackTrace(); 
     } 
    } 

    public class SMTPAuthenticator extends Authenticator { 
     String user; 
     String pwd; 

     SMTPAuthenticator(String senderEmailID, String senderPassword) { 

      super(); 
      this.user = senderEmailID; 
      this.pwd = senderPassword; 

     } 

     public PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(user, pwd); 
     } 
    } 

    public static void main(String[] args) { 

     Outlook obj1 = new Outlook("xxx", "hi", "test"); 

    } 
} 
+0

https://stackoverflow.com/questions/6532273/unrecognized-ssl-message-plaintext-connection-exception –

答えて

0

あなたはsmtp-mail.outlook.comにポート587でTLSを使用して接続する必要があります。

関連する問題