简单邮件
项目目录结构
第一步:导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
第二步:service层中创建接口,在实现类中实现邮件的发送操作 这里开了一个异步的操作。需要在主程序Application中开启异步注解功能
实现类
@Service("emailService")
public class EmailServiceImpl implements EmailService {
@Autowired
private JavaMailSenderImpl sender; //邮件发送对象
@Override
@Async //告诉spring这是一个异步方法
public void simpleEmailSend(String sender, String receiver, String context) {
SimpleMailMessage message = new SimpleMailMessage();
//设置主题
message.setSubject("一个简单的邮件");
//设置发送的内容
message.setText(context);
//设置接收者, 发给谁?
message.setTo(receiver);
//设置发送者, 谁发的?
message.setFrom(sender);
this.sender.send(message); //开始发送,这个会阻塞
System.out.println("发送成功");
}
}
第三步:配置文件
上图的服务开启后,会得到你的邮箱加密后的密码(在QQ邮箱开启)
spring.mail.username=你的邮箱
spring.mail.password=邮箱密码
spring.mail.host=smtp.qq.com
#开启加密验证
spring.mail.properties.mail.smtp.ssl.enable=true
第四步:编写Controller
@Controller
public class EmailController {
@Autowired
private EmailService emailService;
@RequestMapping("home")
public String home(){
return "home";
}
@RequestMapping("/email/send")
public String emailSend(@RequestParam("sender")String sender,
@RequestParam("receiver") String receiver,
@RequestParam("context") String context){
emailService.simpleEmailSend(sender,receiver,context);
return "success";
}
}
第五步:html页面,这里可以自行设计
- home
<form th:action="@{/email/send}">
<teble>
<tr>简单邮箱发送</tr><br>
<tr>
<td>发送者:<input type="text" name="sender"></td><br>
</tr>
<tr>
<td>接收者:<input type="text" name="receiver"></td><br>
</tr>
<tr>
<td>内 容:<input type="text" name="context"></td></td><br>
</tr>
<tr>
<input type="submit" value="发送"></td></td><br>
</tr>
</teble>
</form>
- success
<body>
发送成功!
</body>
复杂邮件
只需在Service层中添加一个复杂操作方法就可以了,详细操作可自行编写
@Override
@Async
public void complexEmailSend(String sender, String receiver,
String context) throws MessagingException {
//一个复杂的邮件
MimeMessage message = this.sender.createMimeMessage();
//组装
MimeMessageHelper helper = new MimeMessageHelper(message, true);
//正文
//主题
helper.setSubject("小可爱,你好呀!");
helper.setText(context,true); //开启html模式
//附件
helper.addAttachment("1.jpg",new File("E:\\1.jpg"));
helper.setTo(receiver);
helper.setFrom(sender);
this.sender.send(message);
}
Controller和简单的邮件发送差不多