spring-boot - 我无法使用我的应用程序配置电子邮件我创建了一个单独的电子邮件实用程序,但出现以下错误
问题描述
我正在尝试连接 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.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")
推荐阅读
- r - map column of one data frame with another data frame column in R (map a child element which is created from parent)
- sql-server - Perl, SQL Server use of @@IDENTITY
- r - problems using data.table in question template R-exams
- mongodb - mongoDB对多个字段进行排序
- php - 尽管插入成功,但数据未添加到数据库中
- visual-studio-code - Visual Studio Code 的 Marklogic XQY 调试器
- javascript - 如何使用animejs制作动画?
- json - Ansible将月份转换为整数
- regex - Splunk:如何在一个查询中使用多个正则表达式?
- angular - Angular - 检测存储的组件是否已重新连接或分离