SpringBoot之实现邮件发送

SpringBoot之实现邮件发送SpringBoot 实现邮件发送在 Java 中发送邮件主要依赖的包是 Javax mail 但是其操作很繁琐 我们使用对 javax mail 进行了封装的 Hutool 的邮件工具 MailUtil 但是因为 Javax

欢迎大家来到IT世界,在知识的湖畔探索吧!

SpringBoot实现邮件发送

在Java中发送邮件主要依赖的包是Javax.mail,但是其操作很繁琐,我们使用对javax.mail进行了封装的Hutool的邮件工具MailUtil,但是因为Javax.mail是第三方包,需要添加此依赖

代码实现

使用Hutool时,对所有的第三方依赖都是可选的,因此在使用Hutool进行邮件发送时需要引入第三方依赖

添加Hutool和 javax.mail依赖

<dependency>   <groupId>javax.mail</groupId>   <artifactId>mail</artifactId>   <version>1.4.7</version> </dependency> <dependency>     <groupId>cn.hutool</groupId>     <artifactId>hutool-all</artifactId>     <version>5.5.7</version> </dependency> 

欢迎大家来到IT世界,在知识的湖畔探索吧!

邮件服务器配置

在Maven项目中的src/main/resources目录下添加config目录,然后新建mail.setting文件,然后进行配置。邮箱SSL方式进行邮件发送的配置示例

欢迎大家来到IT世界,在知识的湖畔探索吧!# 邮件服务器的SMTP地址 host = smtp..com # 邮件服务器的SMTP端口 port = 465 # 发件人(必须正确,否则发送失败) from =  # 用户名(注意:如果使用foxmail邮箱,此处user为号) user = XXXXXXXXX # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助) pass = XXXXXXXXXX #使用 STARTTLS安全连接,STARTTLS是对纯文本通信协议的扩展。 starttlsEnable = true # 使用SSL安全连接 sslEnable = true # 指定实现javax.net.SocketFactory接口的类的名称,这个类将被用于创建SMTP的套接字 socketFactoryClass = javax.net.ssl.SSLSocketFactory # 如果设置为true,未能创建一个套接字使用指定的套接字工厂类将导致使用java.net.Socket创建的套接字类, 默认值为true socketFactoryFallback = true # 指定的端口连接到在使用指定的套接字工厂。如果没有设置,将使用默认端口456 socketFactoryPort = 465 # SMTP超时时长,单位毫秒,缺省值不超时 timeout = 0 # Socket连接超时值,单位毫秒,缺省值不超时 connectionTimeout = 0 

邮件发送

1.发送普通文本邮件

  //收件人         ArrayList<String> tos = CollUtil.newArrayList(                         "");         MailUtil.send(tos,"公司Offer","欢迎你的到了",false); 

使用Hutool封装过的MailUtil进行发送邮件发出简单,只需要一个send方法和明白其参数的含义就可以了

  • tos:收件人地址,可以是一个或者多个
  • subject:标题
  • content:邮件正文,可以是文本或者Html
  • isHtml:正文是Html,则为true,反之false
  • files:可选:附件,一个或多个都可,将File对象添加到最后一个参数即可
  • 2.使用Html格式进行发送

    欢迎大家来到IT世界,在知识的湖畔探索吧! //收件人         ArrayList<String> tos = CollUtil.newArrayList(                         ""); //使用Html格式发送邮件         MailUtil.send(tos,"公司Offer","<h1 style='color:red'>欢迎你的到来</h1>",true); 

    3.发送邮件带有附件和抄送人

           //收件人         ArrayList<String> tos = CollUtil.newArrayList(                         "@.com");         //抄送人         ArrayList<String> ccs = CollUtil.newArrayList(                 "");         //谜抄,就是收件人看不见该抄送人         ArrayList<String> bcss = CollUtil.newArrayList(                 "");         MailUtil.send(tos,ccs,bcss, "公司Offer", "欢迎你的到了!", false, FileUtil.file("D:\\微信图片_537.jpg"));          

    自定义邮件发送

    除了使用mail.setting配置文件进行配置以外,还可以使用MailAccount对象进行配置,然后传入MailUtil.Send。

    欢迎大家来到IT世界,在知识的湖畔探索吧! MailAccount mailAccount = new MailAccount();         mailAccount.setHost("smtp..com");         mailAccount.setPort(465);         mailAccount.setFrom("");         mailAccount.setUser("XXXXXXX");         mailAccount.setPass("XXXXXXX");         mailAccount.setStarttlsEnable(true);         mailAccount.setSslEnable(true);         mailAccount.setSocketFactoryClass("javax.net.ssl.SSLSocketFactory");         mailAccount.setSocketFactoryFallback(true);         mailAccount.setSocketFactoryPort(465);         mailAccount.setTimeout(0);         mailAccount.setConnectionTimeout(0);         mailAccount.setAuth(true);         MailUtil.send(mailAccount,tos,"公司Offer","<h1 style='color:red'>欢迎你的到来</h1>",true); 

    :和Gmail邮箱的时候,是强制开启SSL的,因此才有了以SSL配置的示例。pass:的SSL方法发送邮件的密码不是你的登录密码。

    针对邮箱说明

    在邮箱中SMTP密码是单独生成的授权码,不是密码,具体生成如下

    SpringBoot之实现邮件发送



    欢迎大家来到IT世界,在知识的湖畔探索吧!

    针对Foxmail邮箱说明

    在Hutool中user属性默认提取你邮箱@前面的部分,但是foxmail邮箱是无效的,需要单独配置为与之绑定的号码或者的XXXX。即:

    host = smtp..com from =  user = foxmail邮箱对应的号码或者邮箱@前面部分 

    总结:

    今天以邮箱发送邮件为例介绍了,如何使用Hutool下的MailUtil工具进行,邮件发送,以及邮件发送的文件配置。

    喜欢我的可以进行关注,谢谢

    github地址:https://github.com/bangbangzhou/greemes/tree/master

    SpringBoot之实现邮件发送

    免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/111845.html

    (0)
    上一篇 9小时前
    下一篇 9小时前

    相关推荐

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    联系我们YX

    mu99908888

    在线咨询: 微信交谈

    邮件:itzsgw@126.com

    工作时间:时刻准备着!

    关注微信