spring发送邮件
场景:用户忘记密码时,发送邮箱验证码找回密码
(一)导包
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.1</version>
</dependency>
(二)applicationContext.xml配置
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<!-- 163邮箱,smtp.163.com -->
<!-- admin@163.com 用户名:admin 密码:xxx -->
<!-- smtp邮件发送协议 -->
<!-- pop3收邮件协议 -->
<property name="host" value="smtp.163.com" />
<property name="username" value="123456" />
<property name="password" value="开启POP3/SMTP服务,生成的授权码" />
<property name="javaMailProperties">
<props>
<!-- 必须进行授权认证,它的目的就是阻止他人任意乱发邮件 -->
<prop key="mail.smtp.auth">true</prop>
<!-- SMTP加密方式:连接到一个TLS保护连接 -->
<prop key="mail.smtp.starttls.enable">true</prop>
</props>
</property>
</bean>
注意:发送的邮箱要开启POP3/SMTP服务,生成授权码
(三)controller代码
try {
//设定mail server
senderImpl.setHost("smtp.qq.com");
//建立邮件消息,发送简单邮件和html邮件的区别
MimeMessage mailMessage = senderImpl.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage,"UTF-8");
//设置收件人,寄件人
messageHelper.setTo(email);
messageHelper.setFrom("xxxx@qq.com");
messageHelper.setSubject("密码找回");
//true 表示启动HTML格式的邮件
messageHelper.setText("<html><head></head><body><a href=''>点击链接找回密码</a></body></html>",true);
//发送邮件
senderImpl.send(mailMessage);
} catch (Exception e) {
e.printStackTrace();
}
还没有评论,来说两句吧...