首页 > 解决方案 > 我无法使用我的应用程序配置电子邮件我创建了一个单独的电子邮件实用程序,但出现以下错误

问题描述

我正在尝试连接 gmail 服务器并希望将电子邮件发送到同一个帐户以用于学习目的,但它抛出了这个异常。

@Service
public  class EmailUtilImpl implements EmailUtil {

    @Autowired
    private JavaMailSender sender;

    @Override
    public void sendEmail(String toAddress, String subject, String body)
    {
        MimeMessage message= sender.createMimeMessage();
        MimeMessageHelper helper= new MimeMessageHelper(message);
        try {
            helper.setTo(toAddress);
            helper.setSubject(subject);
            helper.setText(body);
        }
        catch(MessagingException e)
        {
            e.printStackTrace();
        }
        sender.send(message);
    }
}

spring.mail.host = smtp.gmail.com 
spring.mail.port = 587 
spring.mail.username = myemail 
spring.mail.password = mypassword 
spring.mail.properties.mail.smtp.starttls.enable= true         
spring.mail.properties.mail.smtp.starttls.required = true # Other properties 
spring.mail.properties.mail.smtp.auth=true 
spring.mail.properties.mail.smtp.connectiontimeout=5000 
spring.mail.properties.mail.smtp.timeout=5000 
spring.mail.properties.mail.smtp.writetimeout=5000

错误:

出现意外错误(类型=内部服务器错误,状态=500)。邮件服务器连接失败;嵌套异常是 com.sun.mail.util.MailConnectException:无法连接到主机,端口:smtp.gmail.com,587;超时-1;嵌套异常是:java.net.SocketException:权限被拒绝:连接。失败消息:com.sun.mail.util.MailConnectException:无法连接到主机,端口:smtp.gmail.com,587;超时-1;嵌套异常是:java.net.SocketException:权限被拒绝:连接

标签: spring-boot

解决方案


spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username= yourAccount@gmail.com
spring.mail.password= generated App Password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

生成应用密码

其他可能的解决方案

  • 将端口更改为 465
  • 禁用防火墙/防病毒并再次运行
  • 在主应用程序中添加 java.net.preferIPv4Stack

    System.setProperty("java.net.preferIPv4Stack", "true")
    

推荐阅读