java - 如何解决AWS Elastic Beanstalk中的SMTP连接超时异常?

标签 java spring-boot amazon-ec2 smtp amazon-elastic-beanstalk

我已使用 Elastic Beanstalk 在 EC2 实例中部署了 springboot java jar。将用户添加到DB后jar中的api发送确认邮件。此功能在本地主机中运行良好,但是在 aws 实例上,我收到网关超时 504。

这里是 SMTP 服务器的设置(这是不使用用户名和密码的智能服务器,我也在服务器中添加了我的 EC2 实例的公共(public) IP 地址) Java SMTP 设置:

String host = "212.48.*.*";
        Properties props = new Properties();
        props.put("mail.smtp.ssl.trust", "false");
        props.put("mail.smtp.auth", "false");
        props.put("mail.smtp.starttls.enable", "false");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.port", "25");
Session session = Session.getInstance(props);
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(from));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(receiverMail));

                     Transport.send(message);

================================================== ====== 错误消息: 2020-04-13 20:56:45.521 ERROR 5887 --- [nio-5000-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : servlet [dispatcherServlet] 的 Servlet.service() 在上下文中path[]抛出异常[请求处理失败;嵌套异常是 java.lang.RuntimeException: com.sun.mail.util.MailConnectException: 无法连接到主机,端口:212.48。.*, 25;超时-1; 嵌套异常是: java.net.ConnectException:连接超时(Connection timed out)] 根本原因

java.net.ConnectException:连接超时(连接超时) 在 java.net.PlainSocketImpl.socketConnect( native 方法)〜[na:1.8.0_232] 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_232] 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_232] 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_232] 在 java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_232] 在 java.net.Socket.connect(Socket.java:607) ~[na:1.8.0_232] 在 java.net.Socket.connect(Socket.java:556) ~[na:1.8.0_232]

最佳答案

看起来 AWS EC2 实例不允许外部 SMTP 服务器,我已通过验证 AWS SES 中的域并使用 SMTP 设置解决了此问题。

关于java - 如何解决AWS Elastic Beanstalk中的SMTP连接超时异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61196995/

相关文章:

java - 无法在 AMD 64 位平台上加载 IA 32 位 .dll

java - 在 Collection View 中迭代 HashMap

java - 带默认值的 lombok 返回字段的 Spring Rest jackson

java - POST 后返回具有 @ManyToOne 关系的已保存实体

java - 因线程错误而停止 Spring Boot

amazon-web-services - 在一处查看 AWS ALB 访问日志

java - 需要连接的 hibernate 路径,但路径已设置

amazon-web-services - 2FA 不适用于 Ubuntu AWS 实例

amazon-web-services - 在 AWS CloudFormation 中引用 EC2 实例的名称标签而不进行参数化

Java Hibernate 创建 native 查询 javax.persistence.TransactionRequiredException : Executing an update/delete query