国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

springboot 發(fā)送郵件,以及郵件工具類 并且解決spring-boot-starter-mail 發(fā)送郵件附件亂碼或者文件錯(cuò)亂

這篇具有很好參考價(jià)值的文章主要介紹了springboot 發(fā)送郵件,以及郵件工具類 并且解決spring-boot-starter-mail 發(fā)送郵件附件亂碼或者文件錯(cuò)亂。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、設(shè)置系統(tǒng)值

System.setProperty(“mail.mime.splitlongparameters”, “false”);

2、 在創(chuàng)建對(duì)象的時(shí)候定義編碼格式(utf-8):

MimeMessageHelper helper = new MimeMessageHelper(mes, true, “utf-8”);

3、 其次,在添加附件的時(shí)候,附件名是需要定義編碼的

helper.addAttachment(MimeUtility.encodeWord(附件名,“utf-8”,“B”), 你的附件對(duì)象);
————————————————
版權(quán)聲明:本文為CSDN博主「往事不堪回首…」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq3892997/article/details/126013828

//生成的數(shù)據(jù)通過excel附件的方式,進(jìn)行發(fā)送。
	public void sendMail(String mailFrom, String mailTo, String title, String content, File file) throws Exception {
		System.setProperty("mail.mime.splitlongparameters", "false");//1.設(shè)置系統(tǒng)值 ---處理文件名亂碼
		MimeMessage mimeMessage = mailSender.createMimeMessage();
		MimeMessageHelper msg = new MimeMessageHelper(mimeMessage, true, "utf-8");//2.在創(chuàng)建對(duì)象的時(shí)候定義編碼格式(utf-8)
		msg.addAttachment(MimeUtility.encodeWord(excelName,"utf-8","B"), file); //3.在添加附件的時(shí)候,附件名是需要定義編碼的 ---以上3條都得有,否則文件名亂碼
		msg.setFrom(mailFrom);
		msg.setTo(mailTo);
		msg.setSubject(title);
		msg.setText(content, true);
		mailSender.send(mimeMessage);
	}

工具類


@Component
@Slf4j
/**
 * 發(fā)送郵件工具類
 * @author ZMH
 * @date 7/7/2023 2:03 下午
 */
public class EmailUtils {

    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 發(fā)送純文本郵件
     * @author ZMH
     * @date 7/7/2023 10:37 上午
     * @param subject 郵件主題
     * @param text 郵件內(nèi)容
     * @param targetEmail 目標(biāo)郵件地址
     * @param sourceEmail 源郵件地址
     * @return void
     */
    public void sendTextEmail (String subject,String text,String targetEmail,String sourceEmail ){
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setSubject(subject);//主題
        mailMessage.setText(text);//內(nèi)容
        if (StringUtils.isNotBlank(targetEmail) && targetEmail.split(",").length>1){
            mailMessage.setTo(targetEmail.split(","));//多個(gè)號(hào)碼發(fā)送,該發(fā)送會(huì)將目標(biāo)郵件分組發(fā)送
        }else {
            mailMessage.setTo(targetEmail);
        }
        mailMessage.setFrom(sourceEmail);
        javaMailSender.send(mailMessage);
    }


    /**
     * 發(fā)送文本郵件和附件
     * @author ZMH
     * @date 7/7/2023 2:01 下午
     * @param subject 主題
     * @param text 文本內(nèi)容
     * @param targetEmail 目標(biāo)郵件
     * @param sourceEmail 源郵件
     * @param annexList 附件List
     * @param anneNameList 附件名稱List
     * @return void
     */
    public void sendTextAndAnnexEmail(String subject,String text,String targetEmail,String sourceEmail,
                                      String personal, List<File> annexList,List<String> anneNameList ) throws MessagingException {
        sendSeniorEmail(subject,null,false,text,targetEmail,sourceEmail,personal,annexList,anneNameList);
    }




    /**
     * 發(fā)送郵件根據(jù)HTML模本文件
     * @author ZMH
     * @date 7/7/2023 11:16 上午
     * @param subject 主題
     * @param content 內(nèi)容
     * @param targetEmail 目標(biāo)郵件
     * @param sourceEmail 源郵件
     * @return void
     */
    public void sendHTMLEmail(String subject,String content,String targetEmail,String sourceEmail,String personal) throws MessagingException {
        sendSeniorEmail(subject,content,true,"",targetEmail,sourceEmail,personal,null,null);
    }

    /**
     * 發(fā)送模版文件并包含附件
     * @author ZMH
     * @date 7/7/2023 11:20 上午
     * @param subject 主題
     * @param content 內(nèi)容
     * @param targetEmail 目標(biāo)郵件
     * @param sourceEmail 源郵件
     * @param annexList 附件
     * @param annexNameList 附件名稱
     * @return void
     */
    public void sendHTMLAndAnnexEmail(String subject,String content,String targetEmail,
                              String sourceEmail,String personal,List<File> annexList,List<String> annexNameList) throws MessagingException {
        sendSeniorEmail(subject,content,true,"",targetEmail,sourceEmail,personal,annexList,annexNameList);
    }



    /**
     * 發(fā)送高級(jí)郵件
     * @author ZMH
     * @date 7/7/2023 11:26 上午
     * @param subject 主題
     * @param concent content
     * @param targetEmail 目標(biāo)郵箱
     * @param sourceEmail 源郵箱
     * @param annexList 附件
     * @param annexNameList 附件名稱
     * @return void
     */
    private void sendSeniorEmail(String subject, String concent, Boolean isHtml, String txet, String targetEmail,
                                 String sourceEmail,String personal, List<File> annexList, List<String> annexNameList) throws MessagingException{
        System.setProperty("mail.mime.splitlongparameters", "false");//1.設(shè)置系統(tǒng)值 ---處理文件名亂碼
        MimeMessage message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message,true,"utf-8");
        helper.setSubject(subject);//郵件主題
        try {
            helper.setFrom(sourceEmail,personal);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        if (StringUtils.isNotBlank(targetEmail) && targetEmail.split(",").length>1){
            helper.setTo(targetEmail.split(","));//多個(gè)號(hào)碼發(fā)送,該發(fā)送為分組發(fā)送
        }else {
            helper.setTo(targetEmail);
        }
        if (isHtml) {
            //String absolutePath = htmlFile.getAbsolutePath();
            //String htmlModel = FileUtil.getStringByFile(absolutePath);
             concent = "<!DOCTYPE html>\n" +
                    "<html lang=\"en\">\n" +
                    "<head>\n" +
                    "    <meta charset=\"UTF-8\">\n" +
                    "    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n" +
                    "    <title></title>\n" +
                    "</head>\n" +
                    "<body>\n" +
                    "  <div>" + concent + "</div>\n" +
                    "</body>\n" +
                    "</html>";
            helper.setText(concent,true);
        }else {
            helper.setText(txet,false);
        }
        helper.setSentDate(new Date());//郵件發(fā)送時(shí)間
        if (!CollectionUtils.isEmpty(annexList)){
            if (CollectionUtils.isEmpty(annexNameList)){
                for (File file : annexList) {
                    annexNameList.add(file.getName());
                }
            }else {
                if (annexList.size()!= annexNameList.size()){
                    throw new MessagingException("附件名稱和附件條次不一致");
                }
            }
            try {
                for (int i = 0; i < annexList.size(); i++) {
                    helper.addAttachment(MimeUtility.encodeWord(annexNameList.get(i), "utf-8", "B"), annexList.get(i));
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        }
        javaMailSender.send(message);
    }


}

yml配置文件增加

spring:
  mail:
    username: 郵箱號(hào)碼
    password: 授權(quán)碼
    host: smtp.qq.com
    port: 465
    properties:
      mail:
        smtp:
          auth: true
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
          starttls:
            enable: true
          ssl:
            enable: true

pom.xml 增加文章來源地址http://www.zghlxwxcb.cn/news/detail-615687.html

	  <!-- SpringEmail -->
	  <dependency>
		  <groupId>org.springframework.boot</groupId>
		  <artifactId>spring-boot-starter-mail</artifactId>
	  </dependency>

到了這里,關(guān)于springboot 發(fā)送郵件,以及郵件工具類 并且解決spring-boot-starter-mail 發(fā)送郵件附件亂碼或者文件錯(cuò)亂的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • SpringBoot整合Javamail實(shí)現(xiàn)郵件發(fā)送

    SpringBoot整合Javamail實(shí)現(xiàn)郵件發(fā)送

    博客主頁:踏風(fēng)彡的博客 博主介紹:一枚在學(xué)習(xí)的大學(xué)生,希望在這里和各位一起學(xué)習(xí)。 所屬專欄:SpringBoot學(xué)習(xí)筆記 文章創(chuàng)作不易,期待各位朋友的互動(dòng),有什么學(xué)習(xí)問題都可在評(píng)論區(qū)留言或者私信我,我會(huì)盡我所能幫助大家。 ? 發(fā)郵件對(duì)于咱們的Java來說是一個(gè)基本的功

    2024年02月06日
    瀏覽(21)
  • SpringBoot,使用JavaMailSender發(fā)送郵件(含源碼)。

    SpringBoot,使用JavaMailSender發(fā)送郵件(含源碼)。

    ? ? 本文主要講解使用JavaMailSender發(fā)送郵件,并給出對(duì)應(yīng)的參考案例、源碼。 1、使用的依賴jar包 ? ? ?JavaMailSender發(fā)送郵件,只需要 \\\"spring-boot-starter-mail\\\" jar包就可以??紤]到郵件發(fā)送時(shí),使用 Hutool工具生成Excel文件做為附件,因此這里也將 Hutool工具包依賴添加上。 2、 appl

    2024年02月07日
    瀏覽(18)
  • Springboot 使用JavaMailSender發(fā)送郵件 + Excel附件

    Springboot 使用JavaMailSender發(fā)送郵件 + Excel附件

    目錄 1.生成Excel表格 1.依賴設(shè)置 2.代碼: 2.郵件發(fā)送 1.郵件發(fā)送功能實(shí)現(xiàn)-帶附件 ?2.踩過的坑 1.附件名中文亂碼問題 3.參考文章: 需求描述:項(xiàng)目審批完畢后,需要發(fā)送郵件通知相關(guān)人員,并且要附帶數(shù)據(jù)庫表生成的Excel表格,這就要求不光是郵件發(fā)送功能,還要臨時(shí)生成E

    2024年02月07日
    瀏覽(21)
  • 一、Postfix[安裝與配置、smtp認(rèn)證、Python發(fā)送郵件以及防垃圾郵件方法、使用騰訊云郵件服務(wù)]

    一、Postfix[安裝與配置、smtp認(rèn)證、Python發(fā)送郵件以及防垃圾郵件方法、使用騰訊云郵件服務(wù)]

    Debian 11 apt install postfix 解釋:搭建真實(shí)的郵件服務(wù)器需要在DNS提供商那里配置下面的dns 配置A記錄 mail.www.com - 1.x.x.x 配置MX記錄 www.com - mail.www.com 解釋:按照上面的配置通常郵件格式就是 admin@www.com 其通過www.com的MX記錄找到mail.www.com再通過其A記錄來找到對(duì)應(yīng)服務(wù)器完成通訊 解

    2024年02月15日
    瀏覽(25)
  • SpringBoot項(xiàng)目整合Redis,Rabbitmq發(fā)送、消費(fèi)、存儲(chǔ)郵件

    SpringBoot項(xiàng)目整合Redis,Rabbitmq發(fā)送、消費(fèi)、存儲(chǔ)郵件

    本文主要是【Rabbitmq】——SpringBoot項(xiàng)目整合Redis,Rabbitmq發(fā)送、消費(fèi)、存儲(chǔ)郵件的文章,如果有什么需要改進(jìn)的地方還請(qǐng)大佬指出?? ??作者簡(jiǎn)介:大家好,我是聽風(fēng)與他?? ??博客首頁:CSDN主頁聽風(fēng)與他 ??每日一句:狠狠沉淀,頂峰相見 測(cè)試結(jié)果:此時(shí)指定郵箱已收到驗(yàn)

    2024年02月04日
    瀏覽(17)
  • springboot(java)使用javamail實(shí)現(xiàn)郵件的接收、轉(zhuǎn)發(fā)、發(fā)送、清除

    最近在弄郵件相關(guān)的功能,被搞的頭大,很多找的方法根本不知道該怎么往下走,就目前為止, 經(jīng)過各種的碰壁和失敗,就整理出來如何使用javamail實(shí)現(xiàn)郵件的接收、轉(zhuǎn)發(fā)、發(fā)送、清除 不單單是分享,也為我后續(xù)查找更方便做一個(gè)記錄 在正式發(fā)送郵件之前,我們應(yīng)該對(duì)郵件

    2024年02月04日
    瀏覽(24)
  • Prometheus+Grafana+AlertManager監(jiān)控SpringBoot項(xiàng)目并發(fā)送郵件告警通知

    Prometheus+Grafana+AlertManager監(jiān)控SpringBoot項(xiàng)目并發(fā)送郵件告警通知

    Docker搭建并配置Prometheus Docker拉取并配置Grafana Docker安裝并配置Node-Exporter Docker安裝并配置cAdvisor Docker安裝并運(yùn)行Alertmanager 新建項(xiàng)目,引入依賴 新建接口,運(yùn)行程序 Prometheus配置文件中已添加該項(xiàng)目地址,運(yùn)行后到Prometheus頁面中查看連接情況 成功 引入依賴 新增push接口,用于

    2024年02月11日
    瀏覽(25)
  • 一張思維導(dǎo)圖帶你學(xué)會(huì)使用SpringBoot中的Schedule定時(shí)發(fā)送郵件

    一張思維導(dǎo)圖帶你學(xué)會(huì)使用SpringBoot中的Schedule定時(shí)發(fā)送郵件

    ?????作者名稱:DaenCode ??作者簡(jiǎn)介:啥技術(shù)都喜歡搗鼓搗鼓,喜歡分享技術(shù)、經(jīng)驗(yàn)、生活。 ??人生感悟:嘗盡人生百味,方知世間冷暖。 ??所屬專欄:SpringBoot實(shí)戰(zhàn) 標(biāo)題 一文帶你學(xué)會(huì)使用SpringBoot+Avue實(shí)現(xiàn)短信通知功能(含重要文件代碼) 一張思維導(dǎo)圖帶你學(xué)會(huì)Springboot創(chuàng)

    2024年02月14日
    瀏覽(65)
  • Java發(fā)送郵件一行代碼解決

    Java發(fā)送郵件一行代碼解決

    今天博主帶來一期超詳細(xì)的郵件發(fā)送實(shí)操內(nèi)容,希望能get到您的點(diǎn)贊!話不多說,直接進(jìn)入正題。 在實(shí)踐開始前,這里需要提到 Hutool ,Hutool是一個(gè)小而全的Java工具類庫,通過靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率的工具類。 那么現(xiàn)在正式進(jìn)入實(shí)戰(zhàn)!首先創(chuàng)

    2024年02月02日
    瀏覽(26)
  • java發(fā)送郵件報(bào)SSL安全異常解決

    2.運(yùn)行程序,會(huì)有如下提示Enter certificate to add to trusted keystore or \\\'q\\\' to quit: [1] 按1再按回車 3.然后在你的項(xiàng)目路徑下生成了一個(gè)jssecacerts文件 4.復(fù)制文件的路徑,在發(fā)送郵件代碼之前設(shè)置安全證書的位置,我的如下: 5.然后運(yùn)行發(fā)送郵件代碼就可以正常發(fā)送了!

    2024年02月13日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包