Spring boot 我无法使用我的应用程序配置电子邮件。我创建了一个单独的电子邮件实用程序,但出现以下错误
我正试图连接gmail服务器,并希望发送电子邮件到同一个帐户的学习目的,但它抛出了这个例外Spring boot 我无法使用我的应用程序配置电子邮件。我创建了一个单独的电子邮件实用程序,但出现以下错误,spring-boot,Spring Boot,我正试图连接gmail服务器,并希望发送电子邮件到同一个帐户的学习目的,但它抛出了这个例外 @Service public class EmailUtilImpl implements EmailUtil { @Autowired private JavaMailSender sender; @Override public void sendEmail(String toAddress, String subject, String body) {
@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);
}
}
错误:
出现意外错误(类型=内部服务器错误, 状态=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:
mail:
host: smtp.gmail.com
port: 587
username: <YOUR_EMAIL_ADDRESS>
password: <YOUR_EMAIL_PASSWORD>
properties:
mail:
smtp:
starttls:
enable: true
required: true
auth: true
spring:
邮寄:
主机:smtp.gmail.com
港口:587
用户名:
密码:
特性:
邮寄:
smtp:
标准:
启用:true
必填项:true
作者:是的
尝试使用以下属性
spring:
mail:
host: smtp.gmail.com
port: 587
username: <YOUR_EMAIL_ADDRESS>
password: <YOUR_EMAIL_PASSWORD>
properties:
mail:
smtp:
starttls:
enable: true
required: true
auth: true
spring:
邮寄:
主机:smtp.gmail.com
港口:587
用户名:
密码:
特性:
邮寄:
smtp:
标准:
启用:true
必填项:true
作者:是的
其他可能的解决办法
- 将端口更改为465
- 禁用防火墙/防病毒软件,然后重新运行
- 在主应用程序中添加java.net.preferIPv4Stack
System.setProperty("java.net.preferIPv4Stack", "true")
- 将端口更改为465
- 禁用防火墙/防病毒软件,然后重新运行
- 在主应用程序中添加java.net.preferIPv4Stack
System.setProperty("java.net.preferIPv4Stack", "true")
应用程序中配置了邮件属性。属性@PatelRomil是的,我已配置,请参见下面的注释。@Springsecurity是我的密码是使用App Password生成的。请提供完整的堆栈跟踪。存在意外错误(类型=内部服务器错误,状态=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:权限被拒绝:connectHello@Springsecurity您是否在应用程序中配置了邮件属性。属性@PatelRomil是的,我已配置,请参见下面的注释。@Springsecurity是我的密码是使用应用程序密码生成的,我已在应用程序属性中尝试过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#其他属性spring.mail.properties.mail.smtp.auth=truespring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=5000 spring.mail.properties.mail.smtp.writetimeout=5000您使用的凭据是否正确?它显示权限被拒绝我在应用程序属性spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username=mymail-spring.mail.password=mypassword-spring.mail.properties.mail.smtp.starttls.enable=true-spring.mail.properties.mail.smtp.starttls.required=true#其他属性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您使用的凭据是否正确?它显示权限deniedspring.mail.properties.mail.smtp.auth=true-spring.mail.properties.mail.smtp.socketFactory.port=465-spring.mail.properties.mail.smtp.smtp.socketFactory.class=javax.net.ssl.sslsocketFactory-spring.mail.properties.mail.smtp.socketFactory.fallback=False上述配置对我有效感谢Patel Romil的努力@Yogesh Prajapati..不仅需要更改端口,还需要添加这两个属性javax.net.ssl.SSLSocketFactoy,fallback=false将起作用。@Springsecurity我很高兴您已经解决了这个问题spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.socketFactory.port=465 spring.mail.properties.mail.mail.mail.smtp.smtp.smtp.socketFactory.class=javax.net.ssl.sslsocketFactory spring.mail.properties.mail.smtp.socketFactory.fallback=上述问题配置对我有效感谢您的努力Patel Romil@Yogesh Prajapati..不仅需要更改端口,还需要添加这两个属性javax.net.ssl.SSLSocketFactoy,fallback=false将起作用。@Springsecurity我很高兴您解决了这个问题