发送邮件
这里使用SpringBoot2的邮件发送
- 发送普通的邮件
- 发送html格式邮件
- 发送html 中带图片的邮件
- 发送带附件的邮件
这里我们简单讲解下:发送普通邮件
1.引入依赖
xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.添加配置信息
yaml
spring:
mail:
host: smtp.126.com
username: 邮箱用户名
password: 邮箱密码
properties:
mail:
smtp:
auth: true # 需要验证登录名和密码
starttls:
enable: true # 需要TLS认证 保证发送邮件安全验证
required: true
3.发送邮件
开发步骤:
第一步:通过 SimpleMailMessage 设置发送邮件信息,具体信息如下:
- 发送人(From)
- 被发送人(To)
- 主题(Subject)
- 内容(Text)
第二步:发送邮件:示例
java
package cn.lijunkui.mail;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class MailService {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private JavaMailSender sender;
@Value("${spring.mail.username}")
private String formMail;
public void sendSimpleMail(String toMail,String subject,String content) {
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setFrom(formMail);
simpleMailMessage.setTo(toMail);
simpleMailMessage.setSubject(subject);
simpleMailMessage.setText(content);
try {
sender.send(simpleMailMessage);
logger.info("发送给"+toMail+"简单邮件已经发送。 subject:"+subject);
}catch (Exception e){
logger.info("发送给"+toMail+"send mail error subject:"+subject);
e.printStackTrace();
}
}
}
案例:发送验证码
java
@Override
public Result sendCode(String email) {
SimpleMailMessage smm = new SimpleMailMessage(); //创建邮件对象
try {
smm.setSubject("注册验证码"); //设置邮件主题
int code= RandomUtil.randomInt(1000, 9999);
smm.setText("您的验证码为:" + code); //编辑邮件内容
smm.setTo(email); //设置邮件发送地址
smm.setFrom(from); //设置邮件发送源址
redisTemplate.opsForValue().set(email,code);
mailSender.send(smm); //发送邮件
return Result.okResult();
}catch (Exception e){
e.printStackTrace();
return Result.errorResult(AppHttpCodeEnum.CODE_SEND_ERROR);
}
}
其余三种邮件方式: