學習SpringBoot 集成郵件發送(參考純潔的微笑) 記錄其中遇到的問題

1.pom裏面,增長相關依賴包html

<!--郵件集成-->
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2.application.properties裏面,增長相關配置java

#郵箱服務器地址
#spring.mail.host=smtp.qiye.163.com
spring.mail.host=smtp.163.com
#用戶名
spring.mail.username=**********
#密碼
spring.mail.password=********
spring.mail.default-encoding=UTF-8
spring.mail.port=25
#/以誰來發送郵件
mail.fromMail.addr=********

須要注意 spring

設置開啓本身郵箱對應的服務服務器

username與addr保持一致   app

password不是郵箱的登陸名,而是客戶端的受權碼spring-boot

3.貼上代碼測試

package com.example.demo.emilyServer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@Component
public class TestEmilySend {
    @Autowired
    private JavaMailSender javaMailSender;

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Value("${mail.fromMail.addr}")
    private String from;


    /**
     *
     * @param to 接受郵箱
     * @param subject 標題
     * @param content 內容
     */
    public void sendMail(String to, String subject, String content){
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();//普通文本
        simpleMailMessage.setFrom(from);
        simpleMailMessage.setTo(to);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        try {
            javaMailSender.send(simpleMailMessage);
            logger.info("郵件發送成功------------");
        } catch (MailException e) {
            e.printStackTrace();
            logger.error("郵件發送失敗------------");
        }
    }


    /**
     * 發送html郵件
     * @param to
     * @param subject
     * @param content
     */
    public void sendMailByHtml(String to, String subject, String content){
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            helper.setFrom(from);
            helper.setTo(to);
            helper.setText(content,true);
            helper.setSubject(subject);
            javaMailSender.send(mimeMessage);
            logger.info("發送成功-----------------");
        } catch (MessagingException e) {
            e.printStackTrace();
            logger.error("發送失敗----------------");
        }

    }


    /**
     * 發送郵件攜帶附件
     */
    public void sendMailByFile(String to, String subject, String content, String filePath){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("測試文檔.docx",file);
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }

    /**
     * 發送郵件,攜帶圖片
     */
    public void sendMailByImage(String to, String subject, String content, String filePath,String image){
        MimeMessage message = javaMailSender.createMimeMessage();
        try {
            MimeMessageHelper helper = new MimeMessageHelper(message,true);
            helper.setSubject(subject);
            helper.setText(content);
            helper.setTo(to);
            helper.setFrom(from);
            File file = new File(filePath);
            helper.addAttachment("測試文檔.docx",file);
            helper.addInline("測試圖片",new File(image));
            javaMailSender.send(message);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

 

發送附件,郵件的時候,若是不成功,參看163的返回碼查找緣由this

http://help.163.com/09/1224/17/5RAJ4LMH00753VB8.htmlhtm

請勿有test等,會被當作垃圾郵件處理blog

相關文章
相關標籤/搜索