java - 如何查询邮箱账号是否有效?

标签 java

我已经编写了代码来检查适用于 gmail 和 yahoo mail 的电子邮件帐户 但它不适用于 hotmail 和 AOL。下面是我使用过的代码。如果有任何想法请帮忙。

当我传递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;
    }
}

最佳答案

你可以尝试一下:

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

这会起作用。我已经用其他邮件 ID 对其进行了测试。

关于java - 如何查询邮箱账号是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3758132/

相关文章:

java - Freemarker 未在哈希中找到现有元素

java - 使用 Preconditions.checkNotNull() 时如何避免出现 "potential null pointer access"?

java - 在测试中使用 Spring 上下文启动 Jetty

java - 无法在 Flutter 项目中找到 layout.xml

java - 没有未捕获/抛出异常的编译器错误/警告

java - "Method undefined for type"错误,适用于上行 - 发生了什么事?

java - 无法使用java中另一个类的公共(public)方法

Java-BankAccount.class

java - 如何使用 Java 和 XPath 列出节点文本和属性?

java - 运行代码时出现 Mockito 异常