ApiBoot 整合阿里云邮件服务

ApiBoot的邮件组件使用阿里云的邮件服务作为基础支持,提供发送文本、HTML内容的邮件。

前提:需要到阿里云控制台开通邮件服务。

引入ApiBoot Alibaba Sms

pom.xml配置文件内添加如下:

  1. <!--ApiBoot Alibaba Sms-->
  2. <dependency>
  3. <groupId>org.minbox.framework</groupId>
  4. <artifactId>api-boot-starter-alibaba-sms</artifactId>
  5. </dependency>

配置参数

参数名称默认值是否必填描述
api.boot.mail.access-key阿里云控制台提供的AccessKey
api.boot.mail.access-secret阿里云控制台提供的AccessSecret
api.boot.mail.account-name发送邮件时显示的邮箱账号
api.boot.mail.reply-to-addresstrue使用阿里云管理控制台中配置的回复地址(必须验证状态)。
api.boot.mail.address-type1取值范围 0~1: 0 为随机账号;1 为发信地址。
api.boot.mail.from-aliasApiBootMail发送邮件时显示的邮箱昵称
api.boot.mail.region阿里云的邮箱服务区域,根据购买区域配置

发送邮件

ApiBoot提供两种内容的邮件发送,分别是:TextHtml,可应对多种发送场景使用,也可以一次性向多个邮箱发送相同的邮件内容。

ApiBootMailRequest

ApiBootMailRequest是发送邮件所需的请求对象,对象内的方法描述如下所示:

  • contentType:邮件内容类型,TEXT(文本邮件)、HTML(网页邮件),默认为TEXT
  • content:邮件内容
  • toAddress:接收邮件的邮箱列表
  • subject:邮件主题
  • fromAlias:发送人昵称,如果不传递则使用api.boot.mail.from-alias配置内容。

ApiBootMailResponse

  • success:true:邮件发送成功,false:邮件发送失败

发送文本内容邮件

ApiBoot默认的内容类型为Text文本内容,所以我们在发送时可以不配置内容类型,只需要传递邮件内容收件邮箱主题即可,发送示例代码如下所示:

  1. // 构建发送对象
  2. ApiBootMailRequest request = ApiBootMailRequest.builder()
  3. .content("ApiBoot Mail 发版啦~~")
  4. .toAddress(Arrays.asList("yuqiyu@vip.qq.com"))
  5. .subject("ApiBoot 新版本发布啦!")
  6. .build();
  7. // 执行发送 & 获取相应对象
  8. ApiBootMailResponse response = apiBootMailService.sendMail(request);
  9. // 判断是否发送成功
  10. if (response.isSuccess()) {
  11. System.out.println("邮件发送成功.");
  12. }

发送HTML内容邮件

  1. // 构建发送对象
  2. ApiBootMailRequest request = ApiBootMailRequest.builder()
  3. .contentType(ContentType.HTML)
  4. .content("<a href='http://blog.yuqiyu.com'>点击访问博客</a>")
  5. .toAddress(Arrays.asList("yuqiyu@vip.qq.com"))
  6. .subject("ApiBoot 新版本发布啦!")
  7. .build();
  8. // 执行发送 & 获取相应对象
  9. ApiBootMailResponse response = apiBootMailService.sendMail(request);
  10. // 判断是否发送成功
  11. if (response.isSuccess()) {
  12. System.out.println("邮件发送成功.");
  13. }