最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用java實(shí)現(xiàn)BBS論壇發(fā)送郵件過程詳解

 更新時(shí)間:2021年04月13日 17:22:21   作者:狗哥狗弟齊頭并進(jìn)  
這篇文章主要介紹了使用java發(fā)送郵件過程詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

SpringBoot實(shí)踐,開發(fā)社區(qū)登錄模塊今日份開啟 發(fā)送郵件三個(gè)步驟:

1、郵箱設(shè)置

首先需要注冊一個(gè)新浪郵箱 18215626061@sina.cn

然后進(jìn)入設(shè)置開啟POP3/SMTP服務(wù),務(wù)必記住授權(quán)碼

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

左下角點(diǎn)開啟

2、Spring Email

導(dǎo)入jar包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
    <version>2.4.4</version>
</dependency>

然后在IDEA中的application中配置郵箱的相關(guān)設(shè)置

可以創(chuàng)建.properties也可以創(chuàng)建.yaml。分別如下:

在這里插入圖片描述

在這里插入圖片描述

此處password為授權(quán)碼 有的郵箱的密碼需要隱匿的設(shè)置為授權(quán)碼,否則會錯(cuò)誤,這里不用授權(quán)碼的話可以換回密碼。

這里我們創(chuàng)建一個(gè)util包,然后創(chuàng)建MailClient類,這里因?yàn)榘l(fā)郵件的時(shí)候是要委托新浪郵箱,所以這里是一個(gè)Client類。來進(jìn)行委托的業(yè)務(wù)處理。

此處用到的最關(guān)鍵的核心組件是:

JavaMailSender

JavaMailSender

JavaMailSender

我自己記不住,所以多些幾遍加深記憶。 Java實(shí)現(xiàn)發(fā)送email用到的是與郵件發(fā)送相關(guān)的類,那么就是MailSender類。

發(fā)送郵件涉及的關(guān)鍵字:發(fā)送人,發(fā)送到哪里(To),郵件主題,還有郵件內(nèi)容。分別用(from,to,subject,context)表示。

JavaMailSender的源碼如下

在這里插入圖片描述

可以看到第一步是有一個(gè)MimeMessage所以看如下代碼

@Component
public class MailClient {
private staticfinal Logger logger= LoggerFactory.getLogger(MailClient.class);
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String from;
public voidsendMail(String to,String subject,String context){
     try {
      MimeMessage message= javaMailSender.createMimeMessage();
      MimeMessageHelper helper = new MimeMessageHelper(message);
      helper.setFrom(from);
      helper.setTo(to);
      helper.setSubject(subject);
      helper.setText(context,true);//不加true表示是默認(rèn)文本,加了true表示支持html文本
      javaMailSender.send(helper.getMimeMessage());
      } catch (MessagingException e) {
        logger.error("發(fā)送郵件失敗"+e.getMessage());
       }
   }
}

測試類

@RunWith(SpringRunner.class)
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class MailTests {
    @Autowired
    private MailClient mainClient;
    @Test
    public void  testTextMail(){
        mainClient.sendMail("596844484@qq.com","java yyds", "Welcome");
    }
}

然后果不其然出現(xiàn)了錯(cuò)誤

然后果不其然出現(xiàn)了錯(cuò)誤

然后果不其然出現(xiàn)了錯(cuò)誤

在這里插入圖片描述

產(chǎn)生這個(gè)錯(cuò)誤的原因去查了查是因?yàn)槭跈?quán)碼的問題,解決這個(gè)問題可以閱讀文章末尾補(bǔ)充文章

然后經(jīng)過種種我把新浪微博換成了網(wǎng)易163的郵箱

在這里插入圖片描述

并按照解決辦法去修改。測試成功

在這里插入圖片描述

3、使用Thymeleaf模板發(fā)送html文本

先寫一個(gè)html文件

在這里插入圖片描述

在這里插入圖片描述

附上代碼

@Autowired
private TemplateEngine templateEngine;
@Test
//注意這里的Context 是Thymeleaf下的
public void testTextMailHtml(){
  Context context=new Context();
  context.setVariable("username", "小傻瓜"); //從這里取值
  String process = templateEngine.process("/mail/demo", context);
  System.out.println(process);
  mailClient.sendMail("18215626061@sina.com","java yyds", "Welcome");
}

在這里插入圖片描述

下面讓我們想一想開始發(fā)郵箱時(shí)的為什么會報(bào)錯(cuò)。

報(bào)錯(cuò)信息如下圖:

查了查資料,才發(fā)現(xiàn),如果是163郵箱發(fā)送郵件,password配置的需要是163的授權(quán)碼。如下圖:

這樣就解決了報(bào)錯(cuò)問題。

以上就是使用JavaMailSender發(fā)送郵箱的過程。歡迎各位讀者指正。更多關(guān)于java的資料請關(guān)注腳本之家其它相關(guān)文章!,希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

荥经县| 宝鸡市| 谢通门县| 德钦县| 九江市| 如皋市| 临江市| 镇安县| 梅州市| 嵊泗县| 乌鲁木齐县| 射洪县| 诸暨市| 轮台县| 比如县| 新巴尔虎左旗| 双牌县| 临沂市| 霍城县| 南雄市| 阳江市| 张家川| 会昌县| 广元市| 拜城县| 常州市| 镇平县| 昌吉市| 郎溪县| 库尔勒市| 永善县| 吕梁市| 广德县| 建阳市| 桂东县| 沅江市| 湄潭县| 班戈县| 白河县| 宜州市| 衡阳市|