2.1发送邮件

77 阅读1分钟

封装的代码:

/**
 * @Description: 对发送日志进行封装,方便使用。为什么叫client。
 * 因为他把发邮件的事委托给qq邮箱去做,就相当于客户端要求服务器去做
 * @Author: cjh
 * @data: Version 1.0
 */

@Component
public class MailClient {
    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);

    @Autowired
    private JavaMailSender mailSender;

    /**
     * 发邮件的人
     */
    @Value("${spring.mail.username}")
    private String from;

    public void sendMail(String to,String subject,String content){
        try {
            //创建一个模板,自己往里面填
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            //帮助我们构建里面的内容
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);
            mimeMessageHelper.setFrom(from);
            mimeMessageHelper.setTo(to);
            mimeMessageHelper.setSubject(subject);
            //加上true,就可以发送html内容了。不只是文本
            mimeMessageHelper.setText(content,true);
            mailSender.send(mimeMessageHelper.getMimeMessage());
        } catch (MessagingException e) {
            logger.error("发送邮件失败:"+e.getMessage());
        }
    }
}

测试代码:

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class MailTest {

    @Autowired
    private MailClient mailClient;

    @Test
    public void testTextMail(){
        mailClient.sendMail("1506045619@qq.com","test","test mail send!");
    }
}

下面这个测试,可以在不是mvc的情况下,通过dispatchservlet调用html渲染并返回。 这样就返回html的了

_CTP4Q7S(P6$RMJG95POWVG.png