当前位置: 首页 > 知识库问答 >
问题:

Java·spring boot-JavaMailSender错误

傅增
2023-03-14

我是一个相当新的Java spring-我得到以下错误时,试图发送一个测试电子邮件。

发送电子邮件时出错:

org.springframework.Mail.mailsendexception:邮件服务器连接失败;嵌套异常为javax.mail.MessagingException:无法连接到SMTP主机:SMTP.gmail.com,端口:587;嵌套异常是:javax.net.SSL.sslexception:无法识别的SSL消息,明文连接?。失败消息:javax.mail.MessagingException:无法连接到SMTP主机:SMTP.gmail.com,端口:587;嵌套异常为:javax.net.SSL.sslexception:无法识别的SSL消息,明文连接?;消息异常(1)是:失败消息1:javax.mail.MessagingException:无法连接到SMTP主机:SMTP.gmail.com,端口:587;嵌套异常为:javax.net.SSL.sslexception:无法识别的SSL消息,明文连接?“

SimePleMailController.java

package controller;

import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class SimpleEmailController {

    @Autowired
    private JavaMailSender sender;

    @RequestMapping("/simpleemail")
    @ResponseBody
    String home() {
        try {
            sendEmail();
            return "Email Sent!";
        }catch(Exception ex) {
            return "Error in sending email: "+ex;
        }
    }

    private void sendEmail() throws Exception{
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);

        helper.setTo("set-your-recipient-email-here@gmail.com");
        helper.setText("How are you?");
        helper.setSubject("Hi");

        sender.send(message);
    }
}

application.properties设置如下所示-对测试帐户进行测试

spring.mail.port=587
spring.mail.host=smtp.gmail.com
spring.mail.username=xxxxxxxxxxxxx@gmail.com
spring.mail.password=zzzzzzzzzzz
spring.mail.protocol=smtp
spring.mail.defaultEncoding=UTF-8

spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth = true
spring.mail.properties.mail.smtp.socketFactory.port = 25
spring.mail.properties.mail.smtp.socketFactory.class = javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.smtp.socketFactory.fallback = true
spring.mail.properties.mail.smtp.ssl.enable=true

support.mail.address=xxxxxxxxxxxxxxx@gmail.com

共有2个答案

郦兴德
2023-03-14

尝试使用@as setTo()参数进行第一次快速测试。然后,你可以让缺省配置,你不需要太多它。

spring.mail.host=smtp.gmail.com
spring.mail.username=romanineers@gmail.com
spring.mail.password=****** #hope it wasn't your real password :)
spring.mail.properties.mail.smtp.auth = true
呼延智明
2023-03-14

应用程序中删除此行。属性:spring.mail.properties.mail.smtp.ssl.enable=true

因为您正在使用端口587,该端口用于使用TLS发送消息。如果使用端口465(SMTP SSL端口),则应使用上述配置。

 类似资料:
  • 使用的技术: Spring Boot 1.4.2.Release,Spring 4.3.4.Release,Tymeleaf 2.1.5.Release,Tomcat Embeded 8.5.6、Maven 3、Java 8 我创建了这个服务来发送电子邮件

  • 我创建了简单的MailService来通过电子邮件发送内容。它工作但我不知道如何处理异常(我的想法是在HTML视图中打印一些信息或在404页重定向) 邮件服务: 在控制器中的用法:

  • 当我使用JavaMailSender发送带有附件的电子邮件时,它总是失败,并引发以下异常: 这是我的密码

  • web.xml 应用程序-servlet.xml context.xml(在tomcat conf文件夹中) 谢谢你的建议和帮助。

  • 我正在使用JavaMailSender通过我的gmail帐户向我的客户发送电子邮件。在我的gmail帐户设置中,我可以将值设置为“发送邮件为”,以便在客户端电子邮件中显示我的自定义名称。例如,如果我用gmail发送电子邮件,我的客户端电子邮件将显示以下内容: 发件人:这是我的自定义名称(不是我的电子邮件地址) 致:client-email@mail.com 主题 身体... 如何在Spring中设

  • 我正在尝试使用JavaMailSender发送电子邮件。我在HTML中的href标记中有一个动态链接,我必须替换它。在我的数据库中,我存储了: 因此,我在Java Spring中的变量文本中检索该字符串,并发送电子邮件: 在记录器中,我看到: 但在电子邮件中我看到: 而且这两个链接都不可点击。这有什么问题吗?替换不是要使用的正确功能?