国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SpringBoot集成郵件發送

番茄西紅柿 / 3180人閱讀

摘要:協議默認為,協議默認為如果設置為如果設置,并且未指定套接字工廠,則啟用如果設置為如果設置為擴展如果設置,則指定擴展指定將為連接啟用的協議。

 一:簡述

  在日常中的工作中難免會遇到程序集成郵件發送功能、接收功能;此篇文章我將使用SpringBoot集成郵件發送功能和接收功能;若對郵件一些基本協議和發送流程不懂的請務必參考我之前寫的博客或者瀏覽網上資料。

郵件基本概念及發送方式】   【JavaMail發送郵件(超詳細

二:SpringBoot發送郵件的基本說明

   在我們現在使用的SpringBoot的版本中,底層發送郵件的技術都是使用一個叫 Jakarta Mail 的,它可有實現SMTP、POP、IMAP等基本的郵件發送和接收協議,因為前兩篇我都介紹了,這里就不在多說,直接上干貨??!

1:基本環境及坐標依賴

  使用SpringBoot腳手架創建一個SpringBoot項目后導入下面郵件發送坐標,或者在腳手架創建中也可有選擇

    org.springframework.boot

2:快速上手發送郵件

  在發送郵件前我簡單說說JavaMailSenderJavaMailSenderImpl;它們是Spring官方提供的一套郵件功能集成接口及實現,底層調用具體的Jakarta Mail技術;可以說是二次封裝;使用SpringBoot提供的接口及實現是后端郵件發送最主流的集成工具;我們在業務里直接注入JavaMailSenderImpl后并調用send方法。其中簡單的郵件我們可以通過SimpleMailMessage來發送,對于復雜的帶有附件的我們可以借助MimeMessageHelper來構建MimeMessage發送郵件。

spring..host=smtp.163.spring..username=spring..password=xxxxxxxxxxxxxxx
        SimpleMailMessage message = "antladdie@163.com");                   message.setTo("xiaofeng504@qq.com");                    message.setCc("xiaofeng500@qq.com");                    message.setBcc("575814158@qq.com");                     message.setSubject("繳費通知");                          message.setText("您手機已欠費100元,請及時繳費!");         message.setSentDate( Date());

3:集成郵件的基本配置(約定大于配置)

  這里的 Jakarta Mail properties 擴展配置不理解的可以參考 官方文檔  ; 不過英文的看著頭大,這里我將其翻譯了

    要連接的 SMTP 服務器端口,如果 connect() 方法沒有明確指定一個。默認為 25    以毫秒為單位的套接字連接超時值。這個超時是由 java.net.    以毫秒為單位的套接字讀取超時值。這個超時是由 java.net.    以毫秒為單位的套接字寫入超時值。此超時是通過對每個連接使用 java.util.concurrent.    用于 SMTP  命令的電子郵箱地址。這將設置信封返回地址。默認為 msg.getFrom() 或 InternetAddress..smtp.    SMTP HELO 或 EHLO 命令中使用的本地主機名。默認為InetAddress.getLocalHost().getHostName().    如果為     如果為 "LOGIN PLAIN DIGEST-MD5 NTLM"    如果為     如果為     如果為 ,則阻止使用該AUTH DIGEST-    如果為     NTLM 協議特定標志。有關詳細信息,請參閱 http:    如果為 ,則阻止使用該AUTHENTICATE XOAUTH2命令。由于 OAuth 2.0”或將“.smtp.auth.    要在         如果設置為 ,并且服務器支持 8BITMIME 擴展,則使用“quoted-    如果設置為     如果設置為 ,則嘗試使用 javax.security.    用于 DIGEST-    如果設置為 ,則返回的規范主機名將 InetAddress.    如果設置為 ,則發送 QUIT 命令并立即關閉連接。如果設置為     如果設置為     如果設置為     如果設置為實現該javax.net.    如果設置,則指定實現javax.net.    如果設置為 ,則無法使用指定的套接字工廠類創建套接字將導致使用java.net.    如果設置為 ,則默認使用 SSL 連接并使用 SSL 端口?!皊mtp”協議默認為 ,“smtps”協議默認為     如果設置為     如果設置,并且未指定套接字工廠,則啟用 MailSSLSocketFactory. 如果設置為“*    如果設置為擴展 javax.net.ssl.    如果設置,則指定擴展javax.net.ssl.    指定將為 SSL 連接啟用的 SSL 協議。屬性值是該javax.net.ssl.SSLSocket.    指定將為 SSL 連接啟用的 SSL 密碼套件。屬性值是該javax.net.ssl.SSLSocket.    如果為 .smtp.starttls.    如果為     指定 HTTP Web 代理服務器的端口號。默認為端口 80    指定 SOCKS5 代理服務器的端口號。僅當代理服務器未使用標準端口號 1080    附加到 1869    如果設置為 (默認值),則堅持來自 NOOP 命令的 250 以處理以這種方式損壞的服務器。通常,當服務器超時連接時,它會發送 421.sun...sun...sun...sun..smtp.
創建郵件會話Session內可配置的properties屬性(中文)
spring..host=smtp.163.spring..port=25spring..protocol=spring..username=spring..password=spring..-encoding=UTF-8spring..properties..smtp.from=antladdie@163.spring..properties..smtp.auth=spring..properties..smtp.timeout=60000spring..properties..smtp.connectiontimeout=60000spring..properties..smtp.writetimeout=60000spring..properties..debug=

三:復雜郵件發送 HTML+圖片資源+附件

 testMailB()         MimeMessage mimeMessage ==  MimeMessageHelper(mimeMessage, "antladdie@163.com");                   messageHelper.setTo("xiaofeng504@qq.com");                    messageHelper.setCc("xiaofeng500@qq.com");                    messageHelper.setBcc("575814158@qq.com");                     messageHelper.setSubject("繳費通知");                          String rootPath = Objects.requireNonNull(SpringbootJakartamailApplicationTests..getClassLoader().getResource("file"=  FileSystemResource( File(rootPath + "/ab.png"=  FileSystemResource( File(rootPath + "/student.xls"=  FileSystemResource( File(rootPath + "/mu.mp3"=  FileSystemResource( File(rootPath + "/redis.zip"        messageHelper.setText("",         FileSystemResource resPng =  FileSystemResource( File(rootPath + "/b.png""p01"

四:復雜郵件發送使用Thymeleaf模板

  使用模板和不使用模板沒太大區別,只是使用模板則將xx.html文件渲染成String類型的字符串文本再引用

    org.thymeleaf
doctype html><html lang="en" xmlns:th="http://www.thymeleaf.org"><head>    <meta charset="UTF-8">    <meta name="viewport"          content="width=device-width, user-scalable=no,           initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Documenttitle>head><body><h2 style=color:#f00;>    <span th:text="${message}">span>    <img src=cid:p01 alt= style=width:200px;height:50px;>h2>body>html>
emailTemplate.html模板文件
                 ClassLoaderTemplateResolver resolver =         resolver.setPrefix("/file/"".html"        TemplateEngine engine =         Context context =         context.setVariable("message","欠費通知:你已經欠費100元"         engine.process("emailTemplate"

5:結尾

  講到這,已經對SpringBoot集成郵件發送功能說完了,若想知道如何接收并解析郵件請參考我上面給出的博客,使用javaMail發送和接收郵件;不過話說回來在大部分公司里使用SMTP、POP3協議發送和接收是完全夠用的,不過我上次在項目組負責郵箱的發送使用的是內網的企業郵箱,走的是Exchange協議,這個就和我們之前講的不一樣的,下一篇我將帶大家看看如何使用Exchange方法發送郵件。

作者:螞蟻小哥
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須在文章頁面給出原文鏈接,否則保留追究法律責任的權利。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125685.html

相關文章

  • SpringBoot非官方教程 | 第二十一篇: springboot集成JMS

    摘要:對提供了很好的支持,對其做了起步依賴。構架工程創建一個工程,在其文件加入添加配置在中填寫自己的郵箱密碼。啟用設置附件發送郵件郵件已發送測試已全部通過,沒有坑。 springboot對JMS提供了很好的支持,對其做了起步依賴。 構架工程 創建一個springboot工程,在其pom文件加入: org.springframework.boot spring-boot-st...

    roundstones 評論0 收藏0
  • 市長信箱郵件查詢服務: SpringBoot集成Docker上Redis服務

    摘要:集成上服務在我的應用中希望能使用一些的特性比如這樣的數據結構如果能方便的在開發環境中使用起來就好了如何集成呢這里依然使用和來幫忙通過使用我們就能快速的部署好服務而通過使用我們能快速的把集成進我們的服務并能使用提供的模板方法方便的調用的使用快 SpringBoot集成Docker上Redis服務 在我的應用中, 希望能使用一些redis的特性:比如zset這樣的數據結構,如果能方便的在開...

    lanffy 評論0 收藏0
  • SpringBoot 2.X Kotlin系列之JavaMailSender發送郵件

    摘要:在很多服務中我經常需要用到發送郵件功能,所幸的是可以快速使用的框架,只要引入改框架我們可以快速的完成發送郵件功能。引入獲取郵件發送服務器配置在國內用的最多的就是郵件和網易郵件,這里會簡單講解獲取兩家服務商的發送郵件配置。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 在很多服務中我...

    derek_334892 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<