【问题标题】:Java mail fails to connect to portJava 邮件无法连接到端口
【发布时间】:2014-07-03 04:08:13
【问题描述】:

我正在尝试通过 Java 发送电子邮件,我之前已经这样做了,但是我现在使用的 ISP 似乎已经阻止了所有端口,因为我有这段代码:

        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.port", "587"); 
        // tried props.put("mail.smtp.port", "25");
        //props.put("mail.smtp.port", "8889"); For my personal host setting   
        props.put("mail.smtp.timout", "10000");

问题是我不断收到Could not connect to port error,所以如果 ISP 阻止了所有端口,是否有任何可能的方式来发送电子邮件,或者以防万一,我的方法可能有问题。 (它适用于某些 ISP,但不适用于我需要在其上运行代码的 ISP)

【问题讨论】:

  • 你用 ssl 试过 465 了吗?
  • @JorgeCampos:是的,仍然是端口错误
  • 联系您当前的 ISP。如果代码在其他地方工作,我不相信这可能是一个编程问题。
  • 您是否尝试过使用telnet,来检查您的防火墙是否有问题?

标签: java email port


【解决方案1】:

如果有帮助,试试这个(对于 Gmail)。

下面的某些行可能不需要,但我没有测试每一行,只是使用了这些键值对并且工作正常。

Properties props = new Properties();
    props.put("mail.smtp.user", senderEmailAddress);
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.starttls.enable","true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.socketFactory.port", port_port);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");

    //SecurityManager security = System.getSecurityManager();

对于我的本地电子邮件,我使用了这个(非 SSL)

System.setProperty("sun.security.ssl.allowUnsafeRenegotiation","true");
    Properties props = new Properties();
    props.put("mail.smtp.user", senderEmailAddress);
    props.put("mail.smtp.host", host_name); //for me : mail.mydomain.com
    props.put("mail.smtp.port", smtp_port); //mine is "25"
    props.put("mail.transport.protocol", "smtp");
    props.setProperty("mail.smtp.quitwait", "false");
    props.put("mail.smtp.auth", "true");
    //props.put("mail.smtp.starttls.enable","true");        
    //props.put("mail.smtp.socketFactory.port", smtp_port);
    //props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    //props.put("mail.smtp.socketFactory.fallback", "false");

//SecurityManager security = System.getSecurityManager();

【讨论】:

    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多