溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用java實現BBS論壇發送郵件過程的案例分析

發布時間:2021-04-14 09:20:24 來源:億速云 閱讀:202 作者:小新 欄目:開發技術

這篇文章主要介紹使用java實現BBS論壇發送郵件過程的案例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

SpringBoot實踐,開發社區登錄模塊今日份開啟 發送郵件三個步驟:

1、郵箱設置

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

然后進入設置開啟POP3/SMTP服務,務必記住授權碼

使用java實現BBS論壇發送郵件過程的案例分析

使用java實現BBS論壇發送郵件過程的案例分析

使用java實現BBS論壇發送郵件過程的案例分析

左下角點開啟

2、Spring Email

導入jar包

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

然后在IDEA中的application中配置郵箱的相關設置

可以創建.properties也可以創建.yaml。分別如下:

使用java實現BBS論壇發送郵件過程的案例分析

使用java實現BBS論壇發送郵件過程的案例分析

此處password為授權碼 有的郵箱的密碼需要隱匿的設置為授權碼,否則會錯誤,這里不用授權碼的話可以換回密碼。

這里我們創建一個util包,然后創建MailClient類,這里因為發郵件的時候是要委托新浪郵箱,所以這里是一個Client類。來進行委托的業務處理。

此處用到的最關鍵的核心組件是:

JavaMailSender

JavaMailSender

JavaMailSender

我自己記不住,所以多些幾遍加深記憶。 Java實現發送email用到的是與郵件發送相關的類,那么就是MailSender類。

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

JavaMailSender的源碼如下

使用java實現BBS論壇發送郵件過程的案例分析

可以看到第一步是有一個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表示是默認文本,加了true表示支持html文本
      javaMailSender.send(helper.getMimeMessage());
      } catch (MessagingException e) {
        logger.error("發送郵件失敗"+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");
    }
}

然后果不其然出現了錯誤

然后果不其然出現了錯誤

然后果不其然出現了錯誤

使用java實現BBS論壇發送郵件過程的案例分析

產生這個錯誤的原因去查了查是因為授權碼的問題,解決這個問題可以閱讀文章末尾補充文章

然后經過種種我把新浪微博換成了網易163的郵箱

使用java實現BBS論壇發送郵件過程的案例分析

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

使用java實現BBS論壇發送郵件過程的案例分析

3、使用Thymeleaf模板發送html文本

先寫一個html文件

使用java實現BBS論壇發送郵件過程的案例分析

使用java實現BBS論壇發送郵件過程的案例分析

附上代碼

@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");
}

使用java實現BBS論壇發送郵件過程的案例分析

下面讓我們想一想開始發郵箱時的為什么會報錯。

報錯信息如下圖:

使用java實現BBS論壇發送郵件過程的案例分析

查了查資料,才發現,如果是163郵箱發送郵件,password配置的需要是163的授權碼。如下圖:

使用java實現BBS論壇發送郵件過程的案例分析

這樣就解決了報錯問題。

以上是“使用java實現BBS論壇發送郵件過程的案例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女