日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot集成网易企业邮箱,亲测可用

發布時間:2023/12/20 javascript 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot集成网易企业邮箱,亲测可用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

注意:

服務器需要打開994的端口。不然會超時。

第一步

引入依賴。

<!-- SpringBoot——郵件服務 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId> </dependency>

第二步

配置application.yml文件

spring:##郵件服務mail:host: smtphz.qiye.163.comusername: 你的郵箱password: 你的授權碼senderName: 你的郵箱default-encoding: utf-8properties:mail:smtp:ssl:enable: trueauth: trueport: 994

第三步

增加配置類。

package com.penghu.config;import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Configuration;/*** @author :Mall*/ @Configuration @Data public class EmailConfig {@Value("${spring.mail.senderName}")private String senderName; }

第四步

實現類。

package com.penghu.service.email;import com.penghu.config.EmailConfig; import com.penghu.dao.email.EmailSendlogMapper; import com.penghu.entity.email.EmailSendlog; import com.penghu.utils.Result; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine;import javax.annotation.Resource; import javax.mail.internet.MimeMessage; import java.time.Duration;/*** @author :Mall* @description : 郵件發送服務層實現*/ @Service public class EmailService {// 日志private final Logger logger = LoggerFactory.getLogger(this.getClass());// Redis對象,主要用于保證冪等性@Autowiredprivate StringRedisTemplate stringRedisTemplate;// Email發送對象@Resourceprivate JavaMailSender javaMailSender;// template模板@Autowiredprivate SpringTemplateEngine templateEngine;// Email郵件配置@Autowiredprivate EmailConfig emailConfig;/*** 發送普通文本內容** @param to 發送給誰* @param title 標題* @param content 內容* @param identity 唯一標識* @return*/public Result<Object> sendText(String to, String title, String content, MultipartFile file, String identity) {// 用redis的setNx操作,保證冪等性Result<Object> result = new Result<Object>();if (stringRedisTemplate.opsForValue().setIfAbsent(identity + "Text", to, Duration.ofMinutes(5))) {EmailSendlog emailSendlog = new EmailSendlog();try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, file != null);//郵件的標題messageHelper.setSubject(title);messageHelper.setFrom(emailConfig.getSenderName());//郵件接收者(可發送多個)String[] toArray = to.split("[,]");messageHelper.setTo(toArray);//郵件的內容,不是HtmlmessageHelper.setText(content, false);//添加附件if (file != null)messageHelper.addAttachment(file.getOriginalFilename(), file);javaMailSender.send(messageHelper.getMimeMessage());logger.info(identity + ":" + to + "發送成功");return result;} catch (Exception e) {logger.info(e.getMessage());result.success("發送失敗");return result;} finally {// 發送成功后,刪除keystringRedisTemplate.delete(identity + "Text");}} else {result.error("發送中,請稍后");return result;}}/*** 發送Html內容** @param to 發送給誰* @param title 標題* @param content 內容* @param identity 唯一標識* @return*/public Result<Object> sendHtml(String to, String title, String content, MultipartFile file, String identity) {Result<Object> result = new Result<>();// 用redis的setNx操作,保證冪等性if (stringRedisTemplate.opsForValue().setIfAbsent(identity + "Html", to, Duration.ofMinutes(5))) {EmailSendlog emailSendlog = new EmailSendlog();try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, file != null);//郵件的標題messageHelper.setSubject(title);messageHelper.setFrom(emailConfig.getSenderName());//郵件接收者(可發送多個)String[] toArray = to.split("[,]");messageHelper.setTo(toArray);//郵件的內容messageHelper.setText(content, true);//添加附件if (file != null) {messageHelper.addAttachment(file.getOriginalFilename(), file);}javaMailSender.send(messageHelper.getMimeMessage());logger.info(identity + ":" + to + "發送成功");result.success("發送成功");return result;} catch (Exception e) {e.printStackTrace();logger.info(e.getMessage());result.success("發送失敗");return result;} finally {// 發送成功后,刪除keystringRedisTemplate.delete(identity + "Html");}} else {result.success("發送中,請稍后");return result;}}/*** 發送模板1內容** @param to 發送給誰* @param title 標題* @param content 內容* @param identity 唯一標識* @return*/public Result<Object> sendTemplate1(String to, String title, String content, MultipartFile file, String identity) {Result<Object> result = new Result<>();// 用redis的setNx操作,保證冪等性if (stringRedisTemplate.opsForValue().setIfAbsent(identity + "Html", to, Duration.ofMinutes(5))) {EmailSendlog emailSendlog = new EmailSendlog();try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, file != null);//郵件的標題messageHelper.setSubject(title);messageHelper.setFrom(emailConfig.getSenderName());//郵件接收者(可發送多個)String[] toArray = to.split("[,]");messageHelper.setTo(toArray);//郵件的內容,利用 Thymeleaf 模板構建 html 文本Context ctx = new Context();ctx.setVariable("title", title);ctx.setVariable("content", content);String emailText = templateEngine.process("template1", ctx);//發送內容messageHelper.setText(emailText, true);//添加附件if (file != null) {messageHelper.addAttachment(file.getOriginalFilename(), file);}javaMailSender.send(messageHelper.getMimeMessage());logger.info(identity + ":" + to + "發送成功");result.success("發送成功");return result;} catch (Exception e) {logger.info(e.getMessage());result.success("發送失敗");return result;} finally {// 發送成功后,刪除keystringRedisTemplate.delete(identity + "Html");}} else {result.success("發送中,請稍后");return result;}} }

總結

以上是生活随笔為你收集整理的SpringBoot集成网易企业邮箱,亲测可用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。