【问题标题】:I am not able to send mail with outlook(hotmail account) configuration using javamail code but in gmail working fine我无法使用 javamail 代码发送带有 Outlook(hotmail 帐户)配置的邮件,但在 gmail 中工作正常
【发布时间】:2014-11-17 08:09:21
【问题描述】:

我可以使用 smtp.gmail.com 主机发送邮件,但不能使用 smtp.live.com 我也尝试使用主机的 465、25 和 587 端口。

我的配置文件是

mail.smtp.host=smtp.live.com
mail.smtp.socketFactory.port=587
mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
mail.smtp.auth=true
mail.smtp.port=587

我正在使用以下代码发送邮件。

Properties props = new Properties();
            try {                      props.load(UtilEmail.class.getResourceAsStream("properties/email.properties"));              
            } catch (IOException e1) {
                StringWriter stack = new StringWriter();
                e1.printStackTrace(new PrintWriter(stack));
                log.error(stack.toString());
            }

            final String user_name=<<my email address>>;
            final String password="<<my password>>";
            Session session = Session.getInstance(props,
                      new javax.mail.Authenticator() {
                        protected PasswordAuthentication getPasswordAuthentication() {
                            return new PasswordAuthentication(user_name,password);
                        }
                      });


            Message message = new MimeMessage(session);
             message.setFrom(new InternetAddress(user_name,title));
             message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
             message.setSubject(subject);
             message.setContent(body,"text/html");
             Transport.send(message);

我得到以下异常

    ERROR: util.UtilEmail - javax.mail.MessagingException: Could not connect to SMTP host: smtp.live.com, port: 587;
  nested exception is:
    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
    at javax.mail.Service.connect(Service.java:313)
    at javax.mail.Service.connect(Service.java:172)
    at javax.mail.Service.connect(Service.java:121)
    at javax.mail.Transport.send0(Transport.java:190)
    at javax.mail.Transport.send(Transport.java:120)
    at org.snapsboard.core.util.UtilEmail.send(UtilEmail.java:49)
    at org.snapsboard.core.email.EmailService.inviteUserToJoinEvent(EmailService.java:315)
    at org.snapsboard.api.event.sendInvitaionMailUsringThread.run(sendInvitaionMailUsringThread.java:27)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:694)
    at sun.security.ssl.InputRecord.read(InputRecord.java:527)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:954)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)
    at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:503)
    at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:234)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1672)
    ... 9 more

【问题讨论】:

    标签: java email outlook jakarta-mail hotmail


    【解决方案1】:

    当您尝试连接到没有 SSL 的安全加密通道时,我也遇到过这个问题。要解决此问题,您必须添加属性

    mail.smtp.ssl.enable "true"
    

    如果您在此配置后遇到证书问题,那么您还必须在您的信任库中导入服务器证书。

    【讨论】:

      猜你喜欢
      • 2012-01-28
      • 2014-09-13
      • 2012-12-07
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      相关资源
      最近更新 更多