发送邮件时异常,Java

时间:2019-10-01 06:37:18

标签: java javamail

美好的一天。 我正在尝试重写我们的代码以使用ssl身份验证发送邮件。因为我们的系统管理员已添加到后缀代理auth。在Linux机器上的主机中,有smtp服务器和ip的服务器名称。我检查了与telnet的连接。

所以,这是我的代码,用于创建属性和会话。

private Properties createProperties() {
    Properties properties = new Properties();
    properties.setProperty("mail.smtp.host", OurSTMPHostServer);
    properties.setProperty("mail.smtp.port", "587"); //SSL Port
    properties.setProperty("mail.smtp.socketFactory.port", "465"); //SSL Port
    properties.setProperty("mail.smtp.socketFactory.class",  "javax.net.ssl.SSLSocketFactory");
    properties.setProperty("mail.smtp.auth", "true");
    properties.setProperty("mail.smtp.user", MAIL_USER);
    properties.setProperty("mail.smtp.password", MAIL_PASSWORD);
    return properties;
}

private Session createSession(Properties properties) {
    Session session =  Session.getInstance(properties,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication
                getPasswordAuthentication() { return new PasswordAuthentication(MAIL_USER, MAIL_PASSWORD); }
            });
    session.setDebug(true);
    return session;
}

此处是代码创建消息

public MimeMessage createMimeMessage(String mailFromAddress, String mailFromName,
                                     String subject, String mailTo, String message, String messageText, List<File> fileList) throws MessagingException, UnsupportedEncodingException {
    MimeMessage msg = new MimeMessage(createSession(createProperties()));
    msg.setFrom(new InternetAddress(mailFromAddress, mailFromName));
    msg.setSubject(subject);
    msg.setRecipients(Message.RecipientType.TO, mailTo);
    MimeBodyPart wrap = new MimeBodyPart();
    MimeMultipart cover = new MimeMultipart("alternative");
    MimeBodyPart text = new MimeBodyPart();
    text.setHeader("Content-Transfer-Encoding", "base64");
    text.setContent(messageText, "text/plain;charset=UTF-8");
    cover.addBodyPart(text);
    MimeBodyPart html = new MimeBodyPart();
    html.setHeader("Content-Transfer-Encoding", "base64");
    html.setContent(message, "text/html;charset=UTF-8");
    cover.addBodyPart(html);
    wrap.setContent(cover);
    MimeMultipart content = new MimeMultipart("related");
    msg.setContent(content);
    content.addBodyPart(wrap);
    msg.saveChanges();
    return msg;
}

这里是发送消息的代码

public void sendTextMessage(String mailFromAddress, @Nullable String mailFromName, String subject, String mailTo, String message) {
    MimeMessage msg = null;
    try {
        String messageText = convertService.htmlToText(message);
        msg = createMimeMessage(mailFromAddress, mailFromName, subject, mailTo, message, messageText, Collections.<File>emptyList());
            mailSenderFacade.send(msg);
    }
}

其中mailSenderFacade是JavaMailSender类,其中字段主机= OurSMTPHostServer,端口= 465 UPD: 错误在这里

<pre>org.springframework.mail.MailSendException: Mail server connection failed; nested exception is javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketTimeoutException: Read timed out. Failed messages: javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketTimeoutException: Read timed out; message exception details (1) are:
Failed message 1:
javax.mail.MessagingException: Exception reading response;
  nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1611)
    at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1369)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:412)
    at javax.mail.Service.connect(Service.java:288)
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:389)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:340)
    at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSenderImpl.java:336)
    at com.zina.service.mail.MailSenderFacade.send(MailSenderFacade.java:122)
    at com.zina.service.mail.MailService.sendTextMessage(MailService.java:131)
    at com.zina.service.mail.MailService.sendTextMessage(MailService.java:193)
    at com.zina.service.person.PersonService.sendRegistrationApproveMail(PersonService.java:255)
    at com.zina.service.person.PersonService.registerUser_aroundBody4(PersonService.java:167)
    at com.zina.service.person.PersonService$AjcClosure5.run(PersonService.java:1)
</pre>

0 个答案:

没有答案
相关问题