基于Java實現(xiàn)QQ郵箱發(fā)送工具類
我們在日常開發(fā)中,需要實現(xiàn)一個對郵箱的發(fā)送,今天就實現(xiàn)郵箱的發(fā)送工具類,只需要一些注冊郵箱之后的配置即可,我這邊使用的是qq郵箱
0.加上依賴
<!--郵箱--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
1.配置yml文件
需要到官網(wǎng)上去注冊,鏈接地址:https://mail.qq.com/
spring: # Spring Boot應用程序配置的根節(jié)點 mail: # 郵件相關(guān)配置 username: # 你自己的QQ郵箱的用戶名,需要填寫你的QQ郵箱地址 password: # 你自己的QQ郵箱的密鑰/密碼,需要填寫你的QQ郵箱登錄密碼 host: smtp.qq.com # SMTP服務器主機名,這里設置為QQ郵箱的SMTP服務器 port: 465 # SMTP服務器端口,通常情況下使用SSL的SMTP協(xié)議使用465端口 protocol: smtp # 使用SMTP協(xié)議發(fā)送郵件 properties: # 郵件相關(guān)的屬性配置 mail: # 郵件協(xié)議屬性配置 smtp: # SMTP協(xié)議屬性配置 ssl: # SSL/TLS屬性配置 enable: true # 啟用SSL,表示使用加密傳輸郵件 auth: true # 啟用SMTP身份驗證,需要提供用戶名和密碼 starttls: # STARTTLS屬性配置,用于在未加密連接上啟用TLS enable: true # 啟用STARTTLS required: true # 要求必須使用STARTTLS socketFactory: # Socket工廠屬性配置,用于SSL連接 port: 465 # SSL連接的端口,與SMTP服務器的端口一致 class: javax.net.ssl.SSLSocketFactory # 使用的Socket工廠類,通常用于SSL連接 # 請確保填寫你自己的QQ郵箱地址和密碼,以及確保QQ郵箱允許使用SMTP服務來發(fā)送郵件
2.寫一個發(fā)送郵箱工具類
@Component public class MailUtil { private static MailUtil INSTANCE = new MailUtil(); @Resource JavaMailSender mailSender; @Resource JavaMailSender javaMailSender; @PostConstruct public void init(){ INSTANCE.mailSender = mailSender; } /** * 發(fā)送簡單郵件 * * @param subject 主題 * @param content 內(nèi)容 * @param from 發(fā)件人 * @param to 收件人 */ public void sendSimpleMail(String subject,String content,String from,String[] to){ SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(from); message.setTo(to); // 主題 message.setSubject(subject); // 郵件正文 message.setText(content); message.setSentDate(new Date()); // 發(fā)送郵件 INSTANCE.mailSender.send(message); } public void sendMimeMail(String subject,String content,String from,String[] to) throws MessagingException { MimeMessage mimeMessage = javaMailSender.createMimeMessage(); // 構(gòu)建一個郵件對象 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true); // 設置郵件主題 helper.setSubject(subject); // 設置郵件發(fā)送者,這個跟application.yml中設置的要一致 helper.setFrom(from); helper.setTo(to); // 設置郵件發(fā)送日期 helper.setSentDate(new Date()); // 設置郵件的正文 true:是html文件 helper.setText(content,true); // 發(fā)送郵件 javaMailSender.send(mimeMessage); } }
3.編寫controller控制器接口
@RestController @Api(tags = "郵箱發(fā)送") @RequestMapping("/mail") public class MailServlet { @Resource private MailUtil mailUtil; @PostMapping("/to") @ApiOperation("發(fā)送郵件") @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容") , @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開")}) public R to(String subject, String content, String from, String to) { String[] split = to.split(","); try { mailUtil.sendSimpleMail(subject, content, from, split); return R.ok("發(fā)送成功"); } catch (Exception e) { e.fillInStackTrace(); return R.fail("發(fā)送失敗"); } } @PostMapping("/tof") @ApiOperation("發(fā)送富文本郵件") @ApiImplicitParams({@ApiImplicitParam(name = "subject", value = "郵件主題"), @ApiImplicitParam(name = "content", value = "郵件內(nèi)容<html>格式") , @ApiImplicitParam(name = "from", value = "發(fā)送郵件的QQ郵箱"), @ApiImplicitParam(name = "to", value = "要發(fā)送到的QQ郵箱,用,隔開")}) public R tof(String subject, String content, String from, String to) { String[] split = to.split(","); try { mailUtil.sendMimeMail(subject, content, from, split); return R.ok("發(fā)送成功"); } catch (Exception e) { e.fillInStackTrace(); return R.fail("發(fā)送失敗"); } } }
以上就是基于Java實現(xiàn)QQ郵箱發(fā)送工具類的詳細內(nèi)容,更多關(guān)于Java郵箱發(fā)送的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java中用POI實現(xiàn)將數(shù)據(jù)導出到Excel
這篇文章主要介紹了Java中用POI實現(xiàn)將數(shù)據(jù)導出到Excel,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04SpringBoot同時支持HTTPS與HTTP的實現(xiàn)示例
本文主要介紹了SpringBoot同時支持HTTPS與HTTP的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07Springboot pom項目間接依賴包版本與預期不符原因解決分析
這篇文章主要介紹了Springboot pom項目間接依賴包版本與預期不符原因解決分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實例
這篇文章主要介紹了SpringMVC的@InitBinder參數(shù)轉(zhuǎn)換代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09MyBatis自定義resultMap三種映射關(guān)系示例詳解
這篇文章主要介紹了MyBatis自定義resultMap三種映射關(guān)系,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08