天天看點

spring boot 發送郵箱

此篇介紹 spring boot 內建 email 發送郵箱 這裡 用的是qq郵箱

添加 maven 依賴

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
           

添加配置檔案:

spring:

  mail: 
    host: smtp.qq.com
    #你的QQ郵箱賬戶
    username: [email protected]
    #你的QQ郵箱第三方授權碼
    password: xxx
    #編碼類型
    default-encoding: UTF-8
           

QQ郵箱第三方授權碼 需要在 QQ郵箱擷取

需要在 設定中找到賬戶的最下面

spring boot 發送郵箱

一般開啟第一個就可以了

spring boot 發送郵箱

我這 建立了 server 和 controller 目的為了配合 swagger 使用

@Service
public class EmailServer {

	@Autowired
    private JavaMailSender mailSender;
	
	@Value("${spring.mail.username}")
    private String from;
	
	//普通郵件
	public Map<String, Object> sendToEmail(String to, String title, String content) {
		Map<String, Object> mp = new HashMap<String, Object>();
		SimpleMailMessage message = new SimpleMailMessage();
		if(to != null && title != null && content != null) {
			try {
				message.setTo(to);//收信人
		        message.setSubject(title);//主題
		        message.setText(content);//内容
		        message.setFrom(from);//發信人
		        mailSender.send(message);
		        mp.put("msg", 200);
			} catch (Exception e) {
				mp.put("msg", 500);
			}
		}else {
	        mp.put("msg", 1017);
		}
        return mp;
	}
	//HTML郵件
	public Map<String, Object> sendToHTMLEmail(String to, String title, String content) {
		Map<String, Object> mp = new HashMap<String, Object>();
		if(to != null && title != null && content != null) {
			try {
				MimeMessage message = mailSender.createMimeMessage();
		        MimeMessageHelper helper = new MimeMessageHelper(message, true);
	            helper.setTo(to);
	            helper.setSubject(title);
	            helper.setText(content, true);//true代表支援html
	            helper.setFrom(from);
	            mailSender.send(message);
		        mp.put("msg", 200);
			} catch (Exception e) {
				mp.put("msg", 500);
			}
		}else {
	        mp.put("msg", 1017);
		}
        return mp;
	}
	
}
           
@RestController
@RequestMapping("/email")
@Api(tags = "郵件相關接口")
@CrossOrigin(origins = "*", maxAge = 3600)
public class EmailController{

	@Autowired
	protected EmailServer email;//郵箱
	
	@ApiOperation(value="發送簡單郵箱")
    @PostMapping("/sendToEmail")
    public Map<String, Object> sendToEmail(@RequestBody Map<String, Object> map) {
        return email.sendToEmail((String)map.get("to"), (String)map.get("title"), (String)map.get("content"));
    }

	@ApiOperation(value="發送HTML郵箱")
    @PostMapping("/sendToHTMLEmail")
    public Map<String, Object> sendToHTMLEmail(@RequestBody Map<String, Object> map) {
        return email.sendToHTMLEmail((String)map.get("to"), (String)map.get("title"), (String)map.get("content"));
    }
	
}
           
spring boot 發送郵箱
spring boot 發送郵箱

推薦一個比較全的spring boot 發送郵箱

//發送圖檔需要添加
                File file = new File("img_url");
             FileSystemResource res = new FileSystemResource(file);
             helper.addInline("001", res);
 
                //測試時加入 <img width='250px' src='cid:001'>