本文作者:DurkBlue

SpringBoot邮箱发送功能推荐

DurkBlue 2023-08-22 629
SpringBoot邮箱发送功能摘要:         以前发送邮件可能大家需要使用javax下的mail包,自己创建session,mim...

        以前发送邮件可能大家需要使用javax下的mail包,自己创建session,mimemessage这种;其实spring帮我们集成了一下,让发邮件变的更简单、可靠。

        一般来说,应用系统都需要发送邮件,提供一个认证的邮箱帐号和密码是很常见的。但是,有的客户方是内网直连邮箱服务器的,不需要通过帐号密码认证发送邮件,这样的话,理论上将 mail.smtp.auth 属性配置为 false 就可以了。

    mail.smtp.auth 是控制邮件发送是是否需要进行登录认证的:

    true 表示需要身份验证

    false 表示不需要身份验证

    通过 JavaMailSenderImpl 的 setJavaMailProperties 方法来设置该属性。上代码

    在pom.xml下载依赖

  

<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

    上代码


    SpringBoot邮箱发送功能  第1张


设想异常原因举例:

javaMail常见问题/error:

ERROR:


com.sun.mail.smtp.SMTPAddressFailedException: 550 #5.1.0 Address rejected.

com.sun.mail.smtp.SMTPSenderFailedException: 553 Local user only

Authentication failed; nested exception is javax.mail.AuthenticationFailedException

原因:


要么是你这边企业邮箱的范围问题,要么就是对方dns服务器无法解析识别你的域名而拒绝接收。


邮件发送时,虽然不需要帐号认证,但是发件箱地址必须跟 host 邮箱服务器是相同类型。

比如 smtp.163.com输入的发件箱地址应该为 ××××@163.com 


ERROR:


com.sun.mail.smtp.SMTPSenderFailedException: 550 5.8.2 user can not use SMTP service


原因:

这个就是发送邮件的邮箱名不可用。


ERROR:


org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail. 

AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful

原因:


设置 mail.smtp.auth=false 后,同时又设置了认证邮箱帐号和密码,那么等价于 mail.smtp.auth=true 了。

此时,如果认证帐号密码信息错误,則报异常。


ERROR:


Could not connect to SMTP host: xx@xxx.com, port: 25


原因:


排除配置错误的可能性, 很有可能是你的服务器的运营商将25端口封禁了!




此篇文章由DurkBlue发布,请自觉转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2023-08-22
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享