色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

深入理解java—SpringBoot如何使用JavaMailSender來發(fā)送郵件?

江奕云2年前16瀏覽0評論

你好,我是小黃,一個愛看書的java程序員,我來回答這個題,謝謝。

Spring提供了非常好用的JavaMailSender接口實現(xiàn)郵件發(fā)送,在SpringBoot中也提供了相應的自動化配置。

發(fā)送郵件

1,在pom.xml中引入spring-boot-starter-mail依賴:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-mail</artifactId>

</dependency>

2,在application.properties中配置相應的屬性:(我這里模擬的是163郵箱給QQ郵箱發(fā)送郵件)

spring.mail.host=smtp.163.com

spring.mail.username=郵箱用戶名so****@163.com

spring.mail.password=郵箱密碼

spring.mail.default-encoding=UTF-8

3,寫發(fā)送郵件的測試類

@RestController

@RequestMapping("/mail")

publicclassMailController{

privatefinalLoggerlogger=LoggerFactory.getLogger(this.getClass());

@Autowired

privateJavaMailSendermailSender;

@RequestMapping("/send")

publicvoidsendMail(){

SimpleMailMessagemessage=newSimpleMailMessage();

message.setFrom("so***@163.com");

message.setTo("239***@qq.com");

message.setSubject("itisatestforspringboot");

message.setText("你好,我是小黃,我正在測試發(fā)送郵件。");

try{

mailSender.send(message);

logger.info("小黃的測試郵件已發(fā)送。");

}catch(Exceptione){

logger.error("小黃發(fā)送郵件時發(fā)生異常了!",e);

}

}

}

4,運行啟動類

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})

@EnableAutoConfiguration

@MapperScan("cn.yideng.*.dao")

publicclassDemoApplication{

publicstaticvoidmain(String[]args){

SpringApplication.run(DemoApplication.class,args);

}

}

5,瀏覽器運行http://localhost:8080/mail/send

6,登錄163郵箱,在發(fā)送箱里查看

7,登錄QQ郵箱,在收件箱里查看

可以看出SpringBoot的starter模塊提供了自動化配置,在引入了spring-boot-starter-mail依賴之后,會根據(jù)配置文件中的內(nèi)容去創(chuàng)建JavaMailSender實例,因此我們可以直接在需要使用的地方直接@Autowired來引入JavaMailSender郵件發(fā)送對象。

當然在實際使用過程中,不會這么簡單的,我們可能會要求帶上附件、或使用郵件模塊等。這時我們就需要使用MimeMessage來設置更復雜的右鍵內(nèi)容,下面就來看看怎么實現(xiàn)它。

發(fā)送帶附件的郵件

測試類:還是模擬163郵箱給QQ郵箱發(fā)送郵件

@RestController

@RequestMapping("/mail")

publicclassAttachmentsMailController{

privatefinalLoggerlogger=LoggerFactory.getLogger(this.getClass());

@Autowired

privateJavaMailSendermailSender;

@RequestMapping("/att")

publicvoidsendMail()throwsMessagingException{

MimeMessagemimeMessage=mailSender.createMimeMessage();

MimeMessageHelperhelper=newMimeMessageHelper(mimeMessage,true);

helper.setFrom("so***@163.com");

helper.setTo("239**@qq.com");

helper.setSubject("主題:發(fā)送有附件的郵件");

helper.setText("你好,我是小黃,我正在測試發(fā)送一封有附件的郵件。");

FileSystemResourcefile1=newFileSystemResource(newFile("d:\\cat.jpg"));

FileSystemResourcefile2=newFileSystemResource(newFile("d:\\java-1.jpg"));

helper.addAttachment("附件-1.jpg",file1);

helper.addAttachment("附件-2.jpg",file2);

try{

mailSender.send(mimeMessage);

logger.info("小黃的測試帶附件的郵件已發(fā)送。");

}catch(Exceptione){

logger.error("小黃發(fā)送帶附件郵件時發(fā)生異常了!",e);

}

}

}

2,需要在D盤下準備兩張圖片cat.jpgjava-1.jpg

3,瀏覽器運行http://localhost:8080/mail/att

4,登錄163郵箱,在發(fā)送箱里查看,如下圖

5,登錄QQ郵箱,在收件箱里查看,如下圖

嵌入靜態(tài)資源的郵件

還有一種是通過嵌入圖片等靜態(tài)資源,可以直接看到圖片,而不用從附近中查看具體的圖片,來看看吧。

測試類:

@RestController

@RequestMapping("/mail")

publicclassStaticResourceMailController{

privatefinalLoggerlogger=LoggerFactory.getLogger(this.getClass());

@Autowired

privateJavaMailSendermailSender;

@RequestMapping("/static")

publicvoidsendMail()throwsMessagingException{

MimeMessagemimeMessage=mailSender.createMimeMessage();

MimeMessageHelperhelper=newMimeMessageHelper(mimeMessage,true);

helper.setFrom("so**@163.com");

helper.setTo("239***@qq.com");

helper.setSubject("主題:嵌入靜態(tài)資源");

helper.setText("<html><body><imgsrc=\"cid:hello\"></body></html>",true);

//注意addInline()中資源名稱hello必須與text正文中cid:hello對應起來

FileSystemResourcefile1=newFileSystemResource(newFile("d:\\cat.jpg"));

helper.addInline("hello",file1);

try{

mailSender.send(mimeMessage);

logger.info("小黃的測試嵌入靜態(tài)資源的郵件已發(fā)送。");

}catch(Exceptione){

logger.error("小黃發(fā)送嵌入靜態(tài)資源的郵件時發(fā)生異常了!",e);

}

}

}

要特別注意addInline()中資源名稱hello必須與text正文中cid:hello對應

2,需要在D盤下準備兩張圖片cat.jpg

3,瀏覽器運行http://localhost:8080/mail/static

4,登錄163郵箱,在發(fā)送箱里查看,如下圖

5,登錄QQ郵箱,在收件箱里查看,如下圖

好了,以上就是SpringBoot使用JavaMailSender發(fā)送郵件,謝謝。

以上供參考,如果您覺得有幫助,請幫忙點贊,轉(zhuǎn)發(fā),或者關注我,我是小黃,謝謝。