2010-09-21 150 views
0

我已经编写代码来检查它正在为gmail工作的电子邮件帐户& yahoo邮件 但它不适用于hotmail &美国在线。以下是我用过的代码。如果有任何想法,请帮助。如何检查电子邮件帐户是否有效?

我得到以下情况例外,当我通过Hotmail帐户:

javax.mail.MessagingException: Exception reading response; 
nested exception is: 
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? 

代码:

public boolean checkEmailAccountInfo(final String userMailID, 
     final String password, String outgoingMailServer, String portNo) { 

    try { 
     Properties p = new Properties(); 
     // Boolean b = new Boolean(true); 
     p.put("mail.smtps.auth", true); 
     p.put("mail.smtp.user", userMailID); 
     p.put("mail.smtp.host", outgoingMailServer); 
     p.put("mail.smtp.port", portNo); 
     p.put("mail.smtp.starttls.enable", true); 
     p.put("mail.smtp.auth", "true"); 
     p.put("mail.smtp.8BITMIME", "true"); 
     p.put("mail.smtp.PIPELINING", "true"); 
     p.put("mail.smtp.socketFactory.port", 465); 
     p.put("mail.smtp.debug", "true"); 

     p.put("mail.smtp.socketFactory.class", 
       "javax.net.ssl.SSLSocketFactory"); 
     p.put("mail.smtp.socketFactory.fallback", "false"); 
     // create some properties and get the default Session 

     javax.mail.Session session = javax.mail.Session.getInstance(p, 
       new javax.mail.Authenticator() { 
        public PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication(userMailID, 
           password); 
        } 
       }); 
     session.setDebug(false); 

     Transport t = session.getTransport("smtp"); 
     t.connect(); 
     boolean isConnected = t.isConnected(); 
     if (isConnected) { 
      t.close(); 
      return true; 
     } 
     return false; 
    } catch (Exception e) { 
     return false; 
    } 
} 
+0

只需发送一封电子邮件并等待,直到您得到他们的回复:P – GoodSp33d 2010-09-21 07:40:05

+0

您是否确实想直接连接到Hotmail/AOL?也许问题是,Hotmail/AOL不希望你检查这样的电子邮件地址... – 2010-09-21 07:51:53

回答

1

你可以试试这个:

p.put("mail.smtp.socketFactory.port", portNo); 

这会工作。我有用其他邮件ID进行测试。

+0

我已经尝试过了。仍然得到相同的例外。 – 2010-09-21 09:13:23

+0

你不能检查是否有效的电子邮件地址。邮件API使用主机名称而不是电子邮件地址检查服务器IP。 – 2010-09-21 09:59:24

+0

你能举个例子吗? – 2010-09-21 10:36:48

相关问题