使用spring boot傳送郵件
阿新 • • 發佈:2020-07-30
1.新增依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> <version>2.1.8.RELEASE</version> </dependency>
2.配置
開啟POP3/SMTP服務
設定授權碼
application.properties的配置
spring.mail.host=smtp.126.com spring.mail.username= [email protected] #郵箱 spring.mail.password= XXXXXXXX #授權碼 spring.mail.properties.mail.smtp.auth=true spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true
3.傳送郵件的Service
SendEmailService.java
package com.tydt.bim.service; import com.tydt.bim.common.Tasks; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; @Servicepublic class SendEmailService { @Autowired JavaMailSender jms; private final Logger logger = LoggerFactory.getLogger(SendEmailService.class); public String send(String sender,String receiver,String title,String text){ try{ //建立郵件訊息 MimeMessage message = jms.createMimeMessage(); MimeMessageHelper helper= new MimeMessageHelper(message,true); //傳送方 helper.setFrom(sender); //接收方 helper.setTo(receiver); //傳送的標題 helper.setSubject(title); //傳送的內容 helper.setText(text,true); jms.send(message); }catch (MessagingException e){ logger.error(e.getMessage()); } return "success"; } }
4.測試
package com.tydt.bim.controller; import com.tydt.bim.service.SendEmailService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController public class DemoController { @Resource private SendEmailService sendEmailService; @GetMapping("/sendMail") public String send() { String sender = "[email protected]"; String receiver = "[email protected]"; String title = "服務提醒"; String text = ""; StringBuffer textTmp = new StringBuffer(); textTmp.append("<html>\n"); textTmp.append("<body>\n"); textTmp.append("<h2>XXXXXXXXXX</h2>\n"); textTmp.append("XXXXXXXXXXXXXXXXXXXX\n"); textTmp.append("</body>\n"); textTmp.append("</html>"); text = textTmp.toString(); String result = sendEmailService.send(sender, receiver, title, text); return result; } }