亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java通過JavaMail發(fā)送郵件功能

 更新時間:2022年08月11日 08:48:22   作者:熱水得加糖  
這篇文章主要為大家詳細(xì)介紹了Java通過JavaMail發(fā)送郵件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Java通過JavaMail發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下

這里我用的是SpringBoot項目

1、引入相關(guān)jar包 

<!--java-email-->
? <dependency>
? ?<groupId>com.sun.mail</groupId>
? ?<artifactId>javax.mail</artifactId>
? ?<version>1.6.2</version>
</dependency>

2、將QQ郵箱的POP3/SMTP服務(wù)打開(其他郵箱自行百度,個別郵箱跳過)

3、創(chuàng)建郵件發(fā)送屬性

  • 郵件發(fā)送服務(wù)器:QQ郵箱:smtp.qq.com,其他郵箱服務(wù)器地址自行百度
  • 16位授權(quán)碼:16位授權(quán)碼可有多個,個別郵箱可直接用密碼代替(本人用的免費的企業(yè)郵箱,可直接用密碼登錄)

Properties prop = new Properties();
//設(shè)置郵件服務(wù)器
prop.setProperty("mail.host", "smtp.qq.com");
// 郵件發(fā)送協(xié)議
prop.setProperty("mail.transport.protocol", "smtp");
// 需要驗證用戶名密碼
prop.setProperty("mail.smtp.auth", "true");
// 郵箱設(shè)置SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);
//1、創(chuàng)建定義整個應(yīng)用程序所需的環(huán)境信息的 Session 對象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
? ? ? ? ? ? @Override
? ? ? ? ? ? protected PasswordAuthentication getPasswordAuthentication() {
? ? ? ? ? ? ? ? //傳入發(fā)件人賬號和授權(quán)碼
? ? ? ? ? ? ? ? return new PasswordAuthentication("1825508930@qq.com", "16位授權(quán)碼");
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? //2、通過session獲取transport對象
? ? ? ? Transport transport = session.getTransport();
? ? ? ? //3、通過transport對象設(shè)置發(fā)件賬號和授權(quán)碼連接郵箱服務(wù)器
? ? ? ? transport.connect("smtp.qq.com", "1825508930@qq.com", "16位授權(quán)碼");

4、設(shè)置郵件內(nèi)容

圖片

MimeBodyPart image = new MimeBodyPart();
DataHandler handler = new DataHandler(new FileDataSource("本地文件路徑"));
image.setDataHandler(handler);
//設(shè)置圖片id
image.setContentID("test.jpg");
//準(zhǔn)備文本
MimeBodyPart text = new MimeBodyPart();
//通過cid:圖片id設(shè)置文件路徑
text.setContent("<h1>測試圖片</h1><img src='cid:test.jpg' width='100' height='100'>", "text/html;charset=utf-8");

附件

MimeBodyPart appendix = new MimeBodyPart();
appendix.setDataHandler(new DataHandler(new FileDataSource("本地文件路徑")));
appendix.setFileName("test.txt");

將圖片附件存入郵件中并發(fā)送

//拼裝郵件正文
MimeMultipart mimeMultipart = new MimeMultipart();

//將設(shè)置的圖片放入郵箱
mimeMultipart.addBodyPart(image);?

?mimeMultipart.addBodyPart(text);
//文本和圖片內(nèi)嵌
mimeMultipart.setSubType("related");
?

//將拼裝好的正文內(nèi)容設(shè)置為主體
MimeBodyPart contentText = new MimeBodyPart();
contentText.setContent(mimeMultipart);
?

//拼接附件
MimeMultipart allFile = new MimeMultipart();
//附件
allFile.addBodyPart(appendix);
//正文
allFile.addBodyPart(contentText);
//正文和附件都存在郵件中,所有類型設(shè)置為mixed
allFile.setSubType("mixed");
//放到Message消息中
mimeMessage.setContent(allFile);
//保存修改
mimeMessage.saveChanges();
//發(fā)件人郵箱(必須)、別稱(可忽略)
mimeMessage.setFrom(new InternetAddress("1825508930@qq.com", "別稱"));
?
//5、發(fā)送郵件(如果需要群發(fā)的話,為了保護(hù)隱私就不推薦使用mimeMessage.addRecipients(),會將所有收件人一同展示出來,建議循環(huán)使用mimeMessage.setRecipients進(jìn)行發(fā)送)
//設(shè)置收件人
?mimeMessage.setRecipients(Message.RecipientType.TO, "123456@qq.com");
//發(fā)送
transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients());
?//6、關(guān)閉連接
transport.close();
log.info("郵件發(fā)送成功");

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 怎樣給Kafka新增分區(qū)

    怎樣給Kafka新增分區(qū)

    這篇文章主要介紹了怎樣給Kafka新增分區(qū)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳細(xì)講解springboot如何實現(xiàn)異步任務(wù)

    詳細(xì)講解springboot如何實現(xiàn)異步任務(wù)

    異步:異步與同步相對,當(dāng)一個異步過程調(diào)用發(fā)出后,調(diào)用者在沒有得到結(jié)果之前,就可以繼續(xù)執(zhí)行后續(xù)操作。也就是說無論異步方法執(zhí)行代碼需要多長時間,跟主線程沒有任何影響,主線程可以繼續(xù)向下執(zhí)行
    2022-04-04
  • java的arraylist排序示例(arraylist用法)

    java的arraylist排序示例(arraylist用法)

    這篇文章主要介紹了java的arraylist排序示例,學(xué)習(xí)一下arraylist的用法,需要的朋友可以參考下
    2014-03-03
  • Java截取字符串的幾種方法示例

    Java截取字符串的幾種方法示例

    眾所周知java提供了很多字符串截取的方式,下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java截取字符串的幾種方法,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • IDEA切換JDK版本超詳細(xì)操作步驟記錄

    IDEA切換JDK版本超詳細(xì)操作步驟記錄

    在我們項目開發(fā)的過程中可能會遇到JDK版本過高或者過低導(dǎo)致一些程序無法啟動,不兼容的問題,所以我們需要切換JDK的版本號,這篇文章主要給大家介紹了關(guān)于IDEA切換JDK版本的超詳細(xì)操作步驟,需要的朋友可以參考下
    2024-03-03
  • Java包機(jī)制及javadoc詳解

    Java包機(jī)制及javadoc詳解

    為了更好地組織類,Java提供了包機(jī)制,用于區(qū)別類名的命名空間,一般利用公司域名倒置作為包名,這篇文章主要介紹了Java包機(jī)制以及javadoc,需要的朋友可以參考下
    2022-10-10
  • 使用javax.sound實現(xiàn)簡單音頻播放

    使用javax.sound實現(xiàn)簡單音頻播放

    這篇文章主要為大家詳細(xì)介紹了使用javax.sound實現(xiàn)簡單音頻播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Spring依賴注入與第三方Bean管理基礎(chǔ)詳解

    Spring依賴注入與第三方Bean管理基礎(chǔ)詳解

    依賴注入(Dependency Injection)和控制反轉(zhuǎn)(Inversion of Control)是同一個概念。具體含義是:當(dāng)某個角色(可能是一個Java實例,調(diào)用者)需要另一個角色(另一個Java實例,被調(diào)用者)的協(xié)助時,在 傳統(tǒng)的程序設(shè)計過程中,通常由調(diào)用者來創(chuàng)建被調(diào)用者的實例
    2022-12-12
  • Java設(shè)計模式之創(chuàng)建者模式詳解

    Java設(shè)計模式之創(chuàng)建者模式詳解

    這篇文章主要介紹了Java設(shè)計模式之創(chuàng)建者模式詳解,創(chuàng)建者模式,顧名思義,就是提供友好的創(chuàng)建對象的方式?,對象都是?new?出來的,但是在一些情況下,這種方式不是很友好,首先,它不夠直觀,需要的朋友可以參考下
    2023-08-08
  • SpringBoot靜態(tài)資源的訪問方法詳細(xì)介紹

    SpringBoot靜態(tài)資源的訪問方法詳細(xì)介紹

    最近在做SpringBoot項目的時候遇到了“白頁”問題,通過查資料對SpringBoot訪問靜態(tài)資源做了總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09

最新評論