1. 程式人生 > >springboot整合email傳送,來自新手村

springboot整合email傳送,來自新手村

springboot整合email傳送

起源

距離上一家公司已經離開了半年多了,和以前的同事也都有聯絡,這篇文章的緣由就是之前同事的一個問題,由於公司是通過demo進行分支開發,所以以前集成了大部分的功能,email的傳送也在其中,言歸正傳,開始今天的理解。

pom修改

首先需要掌握一些springboot的基礎知識,和maven的相關知識。
在這裡插入圖片描述

配置檔案更改

由於,springboot可以使用兩種配置檔案,.properties/.yml 兩種格式,
springboot官方建議使用.yml檔案,所以我就選擇了.yml檔案,畢竟追求時尚嘛,程式碼如下,均有提示。
在這裡插入圖片描述

java程式碼

第一步:建立一個Bean,建議使用lombok外掛,這樣可以減少set,get方法等等。
直接輸入1次#,並按下space後,將生成1級標題。輸入2次#,並按下space後,將生成2級標題。以此類推,我們支援6級標題。有助於使用語法後生成一個完美的目錄。
第二步:建立一個email配置bean,程式碼如下:

@Component
public class EmailConfig {

@Value("${stmp.host}")
private String host;
@Value("${stmp.account}")
private String account;
@Value("${stmp.password}")
private String password;

@Value("${mail.smtp.auth}")
private String isAuth;
@Value("${mail.smtp.timeout}")
private String outTime;

@Bean(name = "JavaMailSenderImpl")
public JavaMailSenderImpl getMailSender() {
    JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
    javaMailSender.setHost(host);
    javaMailSender.setUsername(account);
    javaMailSender.setPassword(password);
    Properties properties = new Properties();
    properties.put("mail.smtp.auth", isAuth);
    properties.put("mail.smtp.timeout", outTime);
    javaMailSender.setJavaMailProperties(properties);
    return javaMailSender;
}

public void sendSimpleMail(EmailEntity email) {
    SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
    simpleMailMessage.setFrom(account);
    String receiver = email.getReceiver();
    String receivers[] = receiver.split(";");
    simpleMailMessage.setTo(receivers);
    simpleMailMessage.setSubject(email.getSubject());
    simpleMailMessage.setText(email.getContent());
    getMailSender().send(simpleMailMessage);
}

}

第三步:建立一個controller進行測試,程式碼如下

在這裡插入圖片描述

注意點:

1.Component 註解:用於放置容器bean物件。
2.測試時,切記,@PostMapping(),一定要使用post方式請求,建議使用postman工具,還是很好用的。
3.本人新手攻城獅,請多包涵,技術有限,理解有限,謝謝。