300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > android javamail获取邮件太多太慢_「Java」 - SpringBoot amp; 邮件发送

android javamail获取邮件太多太慢_「Java」 - SpringBoot amp; 邮件发送

时间:2023-11-17 11:14:49

相关推荐

android javamail获取邮件太多太慢_「Java」 - SpringBoot amp; 邮件发送

发送邮件是web应用系统的必备功能之一,用于用户注册验证、忘记密码找回或者发送营销信息。最早期使用JavaMail相关API写发送邮件的相关代码,后来Spring推出了JavaMailSender简化了邮件发送代码的编写。现在Spring Boot在JavaMailSender的基础上又进行了封装,有了spring-boot-starter-mail,让邮件发送的业务更加简洁完善。

一、Spring Boot对邮件的支持

Spring的JavaMailSenderImpl提供了强大的邮件发送功能,可发送普通文本邮件、带附件邮件、HTML格式邮件、带图片邮件,设置发送内容编码格式、设置发送人的显示名称。

JavaMail API按其功能划分通常可分为如下三大类。

Message类 :创建和解析邮件的核心API,用于创建一封邮件,可以设置发件人、收件人、邮件主题、正文信息、发送时间等信息。Transport类:发送邮件的核心API类。Store类:接收邮件的核心API类。

邮件相关协议内容如下。

SMTP协议:发送邮件协议;POP3协议:获取邮件协议;IMAP:接收信息的高级协议;MIME:邮件拓展内容格式:信息格式,附件格式。

二、发送邮件

A、基本使用

1、相关依赖

<dependency>

2、配置文件

spring.mail.host=spring.mail.username=118118xxxx@spring.mail.password=授权码spring.mail.default-encoding=UTF-8# 超时时间,可选spring.mail.properties.mail.smtp.connectiontimeout=5000 spring.mail.properties.mail.smtp.timeout=3000spring.mail.properties.mail.smtp.writetimeout=5000

PS:spring.mail.password的密码不是邮箱的登录密码,是客户端授权密码。

3、JavaMailSender

Spirng已经内置了JavaMailSender,直接引用即可。

@Slf4j

from,即为邮件发送者;to,邮件接收者;subject,邮件主题;content,邮件的主体。

邮件发送者from一般采用固定的形式写到配置文件中。

4、测试

public

B、富文本邮件

日常使用的过程中,通常需要在邮件中加入图片或者附件来丰富邮件的内容,也可以通过Spring Boot来发送富文本邮件。

1、发送HTML格式邮件

邮件发送支持以HTML的形式去构建邮件内容,Spring对HTML格式的邮件也做出了支持,非常方便使用。

@Override

与简单邮件对比,发送HTML邮件使用MimeMessageHelper类。MimeMessageHelper支持发送复杂邮件模板,支持文本、附件、HTML、图片等。

2、测试

@Test

C、发送带附件的邮件

public

PS:添加多个附件可以使用多条helper.addAttachment(fileName, file)。

@Test

附件可以是图片、压缩包、Word等文件,但是邮件厂商一般都会对附件大小有限制,太大的附件建议使用网盘上传后,在邮件中给出链接。

D、发送带静态资源的邮件

邮件中的静态资源一般指图片。

@Override

测试:

@Test

三、邮件系统

发送邮件的基础服务就这些了,但是如果需要一个邮件系统的话还需要考虑以下几个问题。

A、邮件模板

尊敬的[isisiwish]:恭喜您注册成为xxxx网用户,感谢您对xxx的关注与支持并欢迎您使用xx的产品与服务。....

其中只有[isisiwish]用户名在变化,其他邮件内容均不变,如果每次发送邮件都需要手动拼接不够优雅,并且每次模板的修改都需要改动代码非常不方便,因此对于这类邮件需求,都建议做成邮件模板来处理。模板的本质很简单,就是在模板中替换变化的参数,转换为HTML字符串即可。

在resorces/templates下创建emailTemplate.html

<!DOCTYPE html>

发送的过程中会根据传入的id值来替换链接中的{id}。

B、解析模板并发送

@Autowired

单击激活账号,跳转的链接为:http://cfish.top/register/001。

C、发送失败

因为各种原因,总会有邮件发送失败的情况,如邮件发送过于频繁、网络异常等。在出现这种情况的时候,一般会考虑重新重试发送邮件,会分为以下几个步骤来实现:

接收到发送邮件请求,首先记录请求并且入库。调用邮件发送接口发送邮件,并且将发送结果记录入库。启动定时系统扫描时间段内,未发送成功并且重试次数小于3次的邮件,进行再次发送。

也可以使用异步发送的方式,将非实时的通知类、提醒类的业务,通过MQ的方式来发送邮件,加快主流程执行速度,监听到消息队列之后启动发送邮件,失败重试。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。