Spring MVC+javamail实现邮件发送
2024-08-29 11:30:50
Spring MVC+javamail实现邮件发送
开启邮箱的POP3/SMTP服务(这里以QQ邮箱举例)
设置 --> 账户 -- > 开启POP3/STMP服务,然后得到一个授权码。
引入pom依赖(jar包直达)
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
配置xml文件
mail.properties文件
#服务器主机名 smtp.xx.com
mail.smtp.host=smtp.qq.com
mail.smtp.username=你的邮箱
#客户端授权码
mail.smtp.password=你的授权码
#编码字符
mail.smtp.defaultEncoding=utf-8
#是否进行用户名密码校验
mail.smtp.auth=true
#设置超时时间
mail.smtp.timeout=20000
applicationContext.xml文件
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="${mail.smtp.host}"/>
<property name="username" value="${mail.smtp.username}"/>
<property name="password" value="${mail.smtp.password}"/>
<property name="defaultEncoding" value="${mail.smtp.defaultEncoding}"/>
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
<prop key="mail.smtp.ssl.timeout">${mail.smtp.timeout}</prop>
</props>
</property>
</bean>
工具类
public class MailSender {
/**
* JavaMailSenderImpl支持MimeMessages和SimpleMailMessages。
* MimeMessages为复杂邮件模板,支持文本、附件、html、图片等。
* SimpleMailMessages实现了MimeMessageHelper,为普通邮件模板,支持文本
*/
private JavaMailSenderImpl mailSender;
@Autowired
public void setMailSender(JavaMailSenderImpl mailSender) {
this.mailSender = mailSender;
}
/**
* 发件人邮箱地址
*/
@Value("${mail.smtp.username}")
private String emailFrom;
/**
* 单发
*
* @param recipient 收件人
* @param content 内容
*/
@Override
public boolean sendEmail(String recipient, String content){
MimeMessage mimeMessage = mailSender.createMimeMessage();
try {
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
/** 发件人的邮箱地址 */
messageHelper.setFrom(emailFrom);
/** 收件人邮箱地址 */
messageHelper.setTo(recipient);
/** 主题 */
messageHelper.setSubject("【嘉净】您的邮箱验证码");
/** 内容 */
messageHelper.setText("\t亲爱的用户,您好:\n\t 本次操作的验证码是:"+content+",\n\t 如非本人操作请忽略。详情:http://www.baidu.com", true);//true代表支持html格式
mailSender.send(mimeMessage);
return true;
} catch (MessagingException e) {
e.printStackTrace();
return false;
}
}
}
结果展示
最新文章
- JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别
- C++: read access data using ADOX.DLL and System::Data::OleDb
- GPU keylogger &;&; GPU Based rootkit(Jellyfish rootkit)
- C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
- 趋势or过渡,量子点屏幕真的优于OLED?
- How Tomcat Works(十一)
- BZOJ_1621_[Usaco2008_Open]_Roads_Around_The_Farm_分岔路口(模拟+大水题)
- 【转】cocos2d-x获取系统时间&mdash;&mdash;2013-08-25 10
- spring+hibernate+jpa+Druid的配置文件,spring整合Druid
- WebHooks
- form表单数据封装成json格式并提交给服务器
- .net core 2使用ef core 2.0以db first方法创建实体类
- celery 大量消息的分布式系统 定时任务
- Java中代理
- python入门学习:8.类
- UI设计文本框解决Placeholder的在IE10 以下 IE 9 IE8 IE 7 的兼容问题
- Django admin 常用方法
- 笔记本建立wifi热点的实用详细步骤
- 使用向量化的 if:ifelse
- sql server 查询所有被锁表并批量解除
热门文章
- PO,VO,BO,POJO,DAO的区别
- SpringMVC(6)数据验证
- spring boot.2x 集成swagger 加入拦截器后 swagger不能访问
- Lua控制语句
- Python单元测试框架unittest之生成测试报告(HTMLTestRunner)
- scrapy::Max retries exceeded with url
- c语言:2.3.3
- Java基础00-基础知识练习12
- 【LeetCode】203.移除链表元素
- java并发编程基础—生命周期与线程控制