【问题标题】:AWS Route 53 Zoho Email: Exception java.net.SocketException: Connection or outbound has closedAWS Route 53 Zoho 电子邮件:异常 java.net.SocketException:连接或出站已关闭
【发布时间】:2021-10-01 01:00:06
【问题描述】:

我的域位于AWS Route 53 托管区域。

我正在尝试使用 ZOHO Mail 主机发送邮件(spring-boot)。我在哪里得到这个错误。

Caused by: javax.mail.MessagingException: Can't send command to SMTP host
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2431) ~[jakarta.mail-1.6.5.jar:1.6.5]
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2418) ~[jakarta.mail-1.6.5.jar:1.6.5]
    at com.sun.mail.smtp.SMTPTransport.close(SMTPTransport.java:1394) ~[jakarta.mail-1.6.5.jar:1.6.5]
    at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailSenderImpl.java:476) ~[spring-context-support-5.2.8.RELEASE.jar:5.2.8.RELEASE]
    ... 60 common frames omitted
Caused by: java.net.SocketException: Connection or outbound has closed
    at java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1270) ~[na:na]
    at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:116) ~[jakarta.mail-1.6.5.jar:1.6.5]
    at java.base/java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:81) ~[na:na]
    at java.base/java.io.BufferedOutputStream.flush(BufferedOutputStream.java:142) ~[na:na]
    at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:2429) ~[jakarta.mail-1.6.5.jar:1.6.5]
    ... 63 common frames omitted

我的 Spring Boot 属性配置是

spring.mail.port=465
spring.mail.protocol=smtps
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.host=smtppro.zoho.com
spring.mail.username=
spring.mail.password=

【问题讨论】:

    标签: amazon-web-services email smtp socketexception zoho


    【解决方案1】:

    端口587 正在工作。

    spring.mail.host=smtp.zoho.com
    spring.mail.port=587
    spring.mail.username=
    spring.mail.password=
    spring.mail.properties.mail.smtp.from=
    spring.mail.properties.mail.smtp.starttls.enable=true
    spring.mail.properties.mail.smtp.starttls.required=true
    spring.mail.properties.mail.smtp.auth=true
    

    【讨论】:

      【解决方案2】:

      检查是否:

      Message message = new MimeMessage(session);

      message.setFrom(new InternetAddress(address)) 如果与您要发送的邮件相同。

      或者:

      解析您要从文件发送的信息。为我工作

      String loadStringTemplate(String filename) throws Exception{
              String emailTemplateDir = FileSystems.getDefault()
                      .getPath("your file path.html")
                      .toAbsolutePath()
                      .toString();
              return Files.readString(Paths.get(emailTemplateDir),StandardCharsets.UTF_8);
      

      我意识到当我想将字符串解析为 Html 内容时出现此错误。 mimeBodyPart.setContent(htmlMsg, "text/html");

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 2013-06-15
        • 2021-05-13
        • 2013-07-08
        • 2023-03-25
        相关资源
        最近更新 更多