<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
JavaMailSender是Spring封裝的郵件傳送封裝類,支援普通文字、附件、html等格式。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
我們這裡用QQ郵箱傳送郵件作為例子,首先需要在QQ郵箱中開啟POP3/SMTP,獲得授權碼。
需在application.yml中加入的設定如下:
spring: mail: host: smtp.qq.com username: xxxxxxxx@qq.com # 這個不是QQ密碼,而是自己郵箱-賬戶-開啟POP3/SMTP時的使用者端授權碼 password: xxxxxxxxx default-encoding: utf-8 protocol: smtp properties: mail: smtp: auth: starttls: # 需要TLS認證 保證傳送郵件安全驗證 enable: true required: true
帶附件的格式傳送郵件需要藉助JavaMailSender物件的createMimeMessage()方法建立的範例MimeMessage作為傳送物件,而設定郵件引數通過MimeMessageHelper物件完成。
我們建立EmailUtil工具類,在其中定義sendMail方法進行郵件傳送,EmailUtil完整程式碼如下:
@Component public class EmailUtil { @Value("${spring.mail.username}") private String from; @Resource private JavaMailSender javaMailSender; public boolean sendMail(String email, String subject, String text) { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); try { MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true); // 設定發件人 mimeMessageHelper.setFrom(from); // 設定收件人 mimeMessageHelper.setTo(email); // 設定郵件主題 mimeMessageHelper.setSubject(subject); // 設定傳送的文字資訊 mimeMessageHelper.setText(text); javaMailSender.send(mimeMessage); return true; } catch (MessagingException e) { e.printStackTrace(); return false; } } }
這裡對成員變數JavaMailSender使用了@Resource註解。@Resource註解和@Autowired註解類似,都用來宣告需要自動裝配的bean,區別在於@Autowired是型別驅動的注入,而@Resource是名稱驅動的注入,所以前者存在多bean問題,而後者,只要保證bean命名唯一就不會出現多bean的問題。
我們需要登入微信公眾號測試平臺,獲取appID和appsecret,並在模板訊息介面中新建模板,獲得模板ID:
然後讓需要接收資訊推播的人都關注測試公眾號:
這樣我們就能得到關注了此公眾號的使用者的openid(微訊號):
這裡我們使用微信模版訊息推播三方sdk:
<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-mp</artifactId> <version>3.3.0</version> </dependency>
@Component public class WxUtils { private Logger log = LoggerFactory.getLogger(getClass()); public String sendMessage(String title, String message, String userOpenId) { //1,設定 WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage(); // 設定appId和secret wxStorage.setAppId("xxxxxx"); wxStorage.setSecret("xxxxxxxxx"); WxMpService wxMpService = new WxMpServiceImpl(); wxMpService.setWxMpConfigStorage(wxStorage); // 設定訊息模板的templateID String messageTemplateId = "xxxxxxxxxxx"; //2,推播訊息 WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder() .toUser(userOpenId) // 要推播的使用者openid .templateId(messageTemplateId) // 模版id // .url("https://www.xxxxx.com/xxxxxx/") // 這裡可以設定使用者點選模版訊息後,跳轉存取的網址 .build(); //3,這裡設定推播資訊的標題和內容,以及它們的文字顏色 templateMessage.addData(new WxMpTemplateData("title", title, "#FF00FF")); templateMessage.addData(new WxMpTemplateData("message", message, "#FF00FF")); try { wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); log.info("微信訊息推播成功,訊息標題:{},訊息內容:{},推播給的使用者openid:{},模板id:{}", title, message, userOpenId, messageTemplateId); return "推播成功"; } catch (Exception e) { log.error("推播失敗:{},訊息標題:{},訊息內容:{},推播給的使用者openid:{},模板id:{}", e.getMessage(), return "推播失敗"; } } }
各個設定項例如appId和secret等都需要在application.yml中設定,然後用@Value註解將我們組態檔的屬性讀出來,我這裡是偷懶了
到此這篇關於SpringBoot實現傳送郵件、傳送微信公眾號推播功能的文章就介紹到這了,更多相關SpringBoot傳送郵件傳送微信公眾號推播內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45