1. 程式人生 > 實用技巧 >使用spring boot傳送郵件

使用spring boot傳送郵件

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;

@Service

public 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;
    }

}