transport.close();[a6]
}
核心类:
Session 设置服务器的参数
MimeMessage 构造信息体设置发件人收件人邮箱,以及要发送的内容
Transport 发送信息的类
可以把该类抽取成一个工具类
Spring整合javaMail
配置mail.properties
mail.username=Admin@yan.com
mail.password=123
内容视情况配置
配置applicationContext-mail.xml
<context:property-placeholder location=“classpath:mail.properties”/>
<bean id="simpleMailMessage"class="org.springframework.mail.SimpleMailMessage[a7] ">
<property name=“from"value=”${mail.from}[a8] "></property>
</bean>
<bean id="javaMailSenderImpl"class=“org.springframework.mail.javamail.JavaMailSenderImpl”>
<property name=“username"value=”${mail.username}"/>
<property name=“password"value=”${mail.password}"/>
<property name=“host"value=”${mail.host}"/>
<property name=“defaultEncoding"value=”${mail.encode}"/>
<property name=“javaMailProperties”>
<props>
<prop key=“mail.smtp.auth”>${mail.smtp.auth}</prop>
<prop key=“mail.debug”>${mail.debug}</prop>
<prop key=“mail.smtp.timeout”>${mail.smtp.timeout}</prop>
</props>
</property>
</bean>
Spring整合了javaMail所以有些方法不一样
普通邮件的发送:
SimpleMailMessage message = (SimpleMailMessage) context.getBean(“simpleMailMessage”);//加载邮件对象
JavaMailSenderImpl sender = (JavaMailSenderImpl) context.getBean(“javaMailSenderImpl”);//创建发送对象
//设置发送信息
message.setSubject(“主题”);
message.setText(“内容”);
message.setTo(“收件人邮箱”);
//发送邮件
sender.send(message);
复杂邮件的发送:
//获取发送对象
JavaMailSenderImpl sender = (JavaMailSenderImpl) context.getBean(“javaMailSenderImpl”);
//获取mimeMessage
MimeMessagemessage = sender.createMimeMessage();
MimeMessageHelperhelper = new MimeMessageHelper(message,true);
//通过工具类设置主题,内容,图片,附件
helper.setFrom(“Admin@yan.”);[a9]
helper.setTo(“tom@yan.com”);[a10]
helper.setSubject(“主题”);
helper.setText(“
显示图片
<img src=cid:image [a11] [a12] />”, true);//发送图片
FileSystemResourceimg = new FileSystemResource(new File(“C:/Users/admin/Pictures/SavedPictures/b.jpg”));
helper.addInline("image[a13] ", img);
//发送附件
FileSystemResourcezipResource = new FileSystemResource(new File(“C:/Users/admin/Pictures/SavedPictures/b.jpg”));
helper.addAttachment(“b.zip”, zipResource);
sender.send(message);
注意:配置文件要灵活应用,很多属性可配可不配或者在java类中设置
Userservice层实现向新用户发送邮件:
新创建一个线程用来发送邮件,这样访问数据库的程序和发送邮件的程序互不影响(发送邮件的业务执行的较慢)
[a1]协议名称 也可以写成: mail.host
[a2]服务器地址,发送邮箱的smtp 如136:smtp.136.com
[a3]创建一个session(应答)
[a4]显示应答应答信息
最后总结
搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析
最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化
[a2]服务器地址,发送邮箱的smtp 如136:smtp.136.com
[a3]创建一个session(应答)
[a4]显示应答应答信息
最后总结
搞定算法,面试字节再不怕,有需要文章中分享的这些二叉树、链表、字符串、栈和队列等等各大面试高频知识点及解析
最后再分享一份终极手撕架构的大礼包(学习笔记):分布式+微服务+开源框架+性能优化
[外链图片转存中…(img-jxVtEvow-1719263325145)]