SpringBoot实现一个简答--复杂的邮件发送

简单邮件

项目目录结构

在这里插入图片描述

第一步:导入依赖
<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>&nbsp;&nbsp;&nbsp;容:<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和简单的邮件发送差不多
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值