我正在尝试通过我的春季启动应用发送电子邮件。但是,我得到以下例外:
Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
控制器类如下:
@RestController
@RequestMapping("/services")
public class MyController {
@Autowired
private MailSender mailSender;
@RequestMapping(value = "/my/mail", method = RequestMethod.GET)
@ResponseBody
public String sendmymail() {
System.out.println("Starting send");
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setSubject("Hello");
mailMessage.setTo("myemailid@gmail.com");
mailMessage.setFrom("myemailid@gmail.com");
SimpleMailMessage message = new SimpleMailMessage(mailMessage);
message.setText("Hello");
try {
this.mailSender.send(message);
}
catch (Exception e)
{
System.out.println(e.getMessage());
}
System.out.println("Finished send");
return "OK";
}
}
我已经在application.properties中配置了属性,如下所示:
spring.mail.host=smtp.gmail.com
spring.mail.port=465
spring.mail.username=<myemailid>
spring.mail.password=<mypassword>
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.transport.protocol=smtps
spring.mail.properties.mail.smtps.quitwait=false
spring.mail.properties.mail.smtp.socketFactory=25
我在pom.xml中添加了以下依赖项,用于自动装配MailSender:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
我做错了什么吗?电子邮件ID和密码是正确的,因为我多次检查过它。
答案 0 :(得分:1)
google smtp服务器的端口号为587
:
spring.mail.port=587
也许也加上这个:
spring.mail.properties.mail.smtp.starttls.enable = true
我设法使用我的Gmail帐户发送电子邮件,但没有这三个配置值:
spring.mail.properties.mail.transport.protocol=smtps
spring.mail.properties.mail.smtps.quitwait=false
spring.mail.properties.mail.smtp.socketFactory=25
我不知道他们是什么,但如果没有他们,你应该没问题。
答案 1 :(得分:0)
我遇到了类似的问题。我按照以下两个步骤&amp;它起作用了 -