第二章-開發社群登入模組-1-傳送郵件
- 郵箱設定 啟用客戶端SMTP服務 xxxxxx(授權碼) 登入新浪郵箱賬號
- Spring Email(利用這個技術)
-
- 匯入jar包
- 郵箱引數配置
- 使用JavaMailSender傳送郵件
javaMail使用sina郵箱報535 Error: authentication failed
-
- 模板引擎
-
使用Thymeleaf傳送HTML郵件
主動去呼叫Thymeleaf模板引擎,該引擎也已經被spring容器管理了起來
-
application.properties檔案配置
spring.mail.host=smtp.sina.com
spring.mail.port=465
spring.mail.username=cuihua4huajie@sina.com
spring.mail.password=40699712b045d211(這裡是授權碼)
sprig.mail.protocol=smtps(表示啟用的是安全協議)
spring.mail.properties.mail.smtp.ssl.enable=true
MailClient.java類:重點是為了構建MimeMessage
@Component
public class MailClient { //代替應用客戶端或者就是一個客戶端)
public static final Logger logger = LoggerFactory.getLogger(MailClient.class);
@Autowired
private JavaMailSender mailSender;
@Value("${spring.mail.username}")
private String from;
private TemplateEngine templateEngine;
public void sendMail(String to, String subject, String content){
try{
//注意這裡使用的是javax.mail.internet.MimeMessage,注意別導錯包了
MimeMessage message = mailSender.createMimeMessage();
//利用幫助類構建更加詳細的message
MimeMessageHelper helper = new MimeMessageHelper(message);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true); true:表示允許支援html文字
mailSender.send(helper.getMimeMessage());
} catch (MessagingException e){
logger.error("傳送郵件失敗:" + e.getMessage());
}
}
}
MailTest.java 分別傳送文字和HTML檔案
@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
public class MailTests {
@Autowired
private MailClient mailClient;
@Autowired
private TemplateEngine templateEngine; //Thymeleaf模板引擎
@Test
public void testTextMail(){
//會去訪問新浪伺服器,讓伺服器幫助我們去傳送郵件
mailClient.sendMail("1577153977@qq.com", "test", "test");
}
@Test
public void testHtmlMail(){
//thymeleaf模板
Context context = new Context();
context.setVariable("username", "cuihua");
//會幫我們返回渲染出一個html網頁
//利用thymeleaf模板引擎去幫助我們傳送資訊,但是需要我們主動去呼叫 利用TemplateEngine 這個類
String content = templateEngine.process("/mail/demo", context);//通過process就會生成我們html的字串
System.out.println(content);
mailClient.sendMail("1577153977@qq.com", "HTML", content);
}
}
JavaMailSender和TemplateEngine會被自動裝配到Spring容器中,但是MimeMessage和MimeMessageHelper不會被自動載入。
相關文章
- 郵件開發:傳送程式
- 郵件傳送
- 傳送郵件
- [登入那些事] 郵件傳送,限流,漏桶與令牌桶
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- 郵箱傳送模組
- python模組學習:smtplib 郵件傳送Python
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- Android開發呼叫第三方郵件應用傳送郵件Android
- 【python】用SMTP模組傳送帶附件的郵件Python
- python傳送郵件例項 - 使用smtplib模組Python
- Java Mail 郵件傳送(一):入門DemoJavaAI
- golang傳送郵件(qq郵箱)Golang
- 郵件傳送API整理API
- php windows 傳送郵件PHPWindows
- 定時傳送郵件
- thinkjs 傳送郵件JS
- 使用phpmailer傳送郵件PHPAI
- Ubuntu的郵件傳送Ubuntu
- python傳送郵件Python
- nodejs 傳送郵件NodeJS
- 傳送郵件那些事
- javamail郵件傳送例子JavaAI
- 使用JavaMail傳送郵件JavaAI
- 使用nodemailer傳送郵件AI