使用Spring JavaMailSender 发送告警邮件|AuthenticationFailedException: 535 Error: authentication failed解决方法

前言

本文记录了如何使用Spring自带的JavaMailSender发送告警邮件,作为某些场景下线上问题的报警监控。测试告警邮件发送内容如下:
使用Spring JavaMailSender 发送告警邮件|AuthenticationFailedException: 535 Error: authentication failed解决方法_第1张图片

邮箱设置

这里选择网易163邮箱,新建一个邮箱,专用于发邮件。在设置中设置客户端授权密码勾选POP3/SMTP服务服务
使用Spring JavaMailSender 发送告警邮件|AuthenticationFailedException: 535 Error: authentication failed解决方法_第2张图片

示例代码

Maven依赖

        <dependency>
            <groupId>javax.mailgroupId>
            <artifactId>mailartifactId>
            <version>1.4.7version>
        dependency>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-context-supportartifactId>
            <version>4.3.20.RELEASEversion>
        dependency>

发送代码

    @Test
    public void testMailSend() {
        JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
        mailSender.setHost("smtp.163.com");
        mailSender.setUsername("自己的邮箱[email protected]");
        //注意密码为<客户端授权密码>而不是邮箱登录密码
        mailSender.setPassword("自己的客户端授权密码xxxxx");

        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("发件人[email protected]");
        message.setTo("收件人[email protected]");
        message.setSubject("Java Send Email Test " + RandomStringUtils.randomNumeric(20));//主题
        message.setText("Java Send Email Test Hello World " + RandomStringUtils.randomNumeric(100));//正文
        mailSender.send(message);
    }

注意事项

  • 代码中的password指的是邮箱中设置的客户端授权密码
    否则将会出现535授权错误
Exception in thread "main" org.springframework.mail.MailAuthenticationException: Authentication failed; 
nested exception is javax.mail.AuthenticationFailedException: 535 Error: authentication failed
  • 注意告警邮件不要被垃圾箱拦截

发送结果

使用Spring JavaMailSender 发送告警邮件|AuthenticationFailedException: 535 Error: authentication failed解决方法_第3张图片

你可能感兴趣的:(开发经验分享)