Can';无法使用JavaMail连接到Hotmail

Can';无法使用JavaMail连接到Hotmail,java,jakarta-mail,hotmail,Java,Jakarta Mail,Hotmail,首先,如果这是一个重复的问题,让我解释一下。在过去的两个日历月里,我一直在尝试使用JavaMail发送电子邮件;通过我的Hotmail帐户。我已经使用了无数的技巧和代码狙击手,已经张贴到这个网站在过去的主题;然而,我仍然得到一个java.net.ConnectException:连接被拒绝。。。当我执行Transport.connect方法时 这是我的密码 String fromUserName = "testEmailAddress@hotmail.com"; String fromEMail

首先,如果这是一个重复的问题,让我解释一下。在过去的两个日历月里,我一直在尝试使用JavaMail发送电子邮件;通过我的Hotmail帐户。我已经使用了无数的技巧和代码狙击手,已经张贴到这个网站在过去的主题;然而,我仍然得到一个java.net.ConnectException:连接被拒绝。。。当我执行Transport.connect方法时

这是我的密码

String fromUserName = "testEmailAddress@hotmail.com";
String fromEMailAddress = "My Email Test <testEmailAddress@hotmail.com>";
String fromEmailPassword = "testEmailPassword";
String emailServerName = "smtp.live.com";
String emailServerPort = "587";
String toEMailAddress = "<TestDestinationEmailAddress@gmail.com>";      

Properties emailProps = System.getProperties();
emailProps.put("mail.smtps.host", emailServerName);
emailProps.put("mail.smtps.auth", "true");
emailProps.put("mail.transport.protocol", "smtps");
emailProps.put("mail.smtps.starttls.enable", "true");
emailProps.put("mail.smtps.ssl.enable","true");
emailProps.put("mail.smtps.port", emailServerPort);
emailProps.put("mail.debug", "true");

Authenticator localAuthenticator = new SMTPAuthenticator(fromUserName, fromEmailPassword);

Session emailSession = Session.getInstance(emailProps, localAuthenticator);

try {

    SMTPTransport emTransport = (SMTPTransport) emailSession.getTransport("smtps"); 
    emTransport.connect(emailServerName, Integer.parseInt(emailServerPort), fromUserName, fromEmailPassword);
    System.out.println("Ok, we connected ok.");

    MimeMessage emailMsg = new MimeMessage(emailSession);           
    emailMsg.addRecipient(Message.RecipientType.TO, new InternetAddress(toEMailAddress));
    emailMsg.setFrom(new InternetAddress(fromEMailAddress));
    emailMsg.setSubject("Automated Notification Number 1");
    emailMsg.setContent(getHtmlContent(), "text/html");
    emTransport.sendMessage(emailMsg, emailMsg.getAllRecipients());
    System.out.println("Sent Message#: 1");

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


有几件事:

  • 我试过“smtp”和“smtps”…似乎没什么关系
  • 我尝试了端口:25465587和995…仍然拒绝连接
  • 我已经在许多计算机上试用了该代码,结果都是一样的
  • 剪切并粘贴了JavaMail演示代码中的代码,但是stll得到了错误
  • 该代码适用于雅虎、at&t、gmail和其他公司……但不适用于Hotmail!


    • 你大概已经读过了

      您是否也尝试过调试技巧

      从您发布的调试输出来看,您似乎有防火墙或其他东西阻止您连接到该站点。

      我删除了所有“socketFactory”内容,如中所示 然后它工作得很好

      功能如下:

      private Properties _setProperties() {   
          Properties props = new Properties();   
      
          props.put("mail.smtp.host", _host);   
      
          if(_debuggable) {   
            props.put("mail.debug", "true");   
          }   
      
          if(_auth) {   
            props.put("mail.smtp.auth", "true");   
          }
      
          props.setProperty("mail.transport.protocol", "smtp");
          props.setProperty("mail.host", _host);
          props.put("mail.smtp.starttls.enable", "true");
          props.put("mail.smtp.port", _port);
      
          return props;
        } 
      

      有人在JavaMail+Hotmail组合中遇到了一些问题:
      private Properties _setProperties() {   
          Properties props = new Properties();   
      
          props.put("mail.smtp.host", _host);   
      
          if(_debuggable) {   
            props.put("mail.debug", "true");   
          }   
      
          if(_auth) {   
            props.put("mail.smtp.auth", "true");   
          }
      
          props.setProperty("mail.transport.protocol", "smtp");
          props.setProperty("mail.host", _host);
          props.put("mail.smtp.starttls.enable", "true");
          props.put("mail.smtp.port", _port);
      
          return props;
        }