springboot整合mail實現郵箱的發送功能

第一步添加mail的依賴

<!--引入mail的依賴  -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>

第二步編寫郵箱的

yml配置文件

spring:
  #郵箱配置
  mail:
    host: smtp.qq.com
    username: [email protected]
    #QQ郵箱的授權碼
    password: 授權碼
    default-encoding: UTF-8
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true
            required: true

properties的配置文件

#qq郵箱配置
# JavaMailSender 郵件發送的配置
spring.mail.host=smtp.qq.com
spring.mail.username=用戶qq郵箱
#QQ郵箱的授權碼
spring.mail.password=授權碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.default-encoding=UTF-8

#163郵箱配置
spring.mail.host=smtp.163.com
spring.mail.username=用戶163郵箱
spring.mail.password=郵箱密碼
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
spring.mail.default-encoding=UTF-8

編寫兩個發送郵件的接口

package www.it.com.server;

import java.io.File;

/**
* @author wangjie:
* @version 創建時間:2019年8月27日 上午10:13:08
* @Description 類描述:
*/
public interface MailServer {
	/**
	 * @param sendUser 郵件接收人 
	 * @param title 郵件的標題 
	 * @param text  郵件的內容
	 */
	void sendMailServer(String sendUser,String title,String text);
	
	
	/**
	 * 帶有附件郵箱的發送
	 * @param sendUser
	 * @param title
	 * @param text
	 * @param file
	 */
	void sendFileMail(String sendUser,String title,String text,File file);
}

接口的實現

package www.it.com.server.impl;

import java.io.File;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

import org.apache.logging.log4j.message.SimpleMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;

import www.it.com.server.MailServer;

/**
* @author wangjie:
* @version 創建時間:2019年8月27日 上午10:13:58
* @Description 類描述:
*/
@Service
public class MailServerImpl implements MailServer {
	
	@Value("${spring.mail.username}")
	private String fromUser;
	
	@Autowired
    private JavaMailSender javaMailSender;
	
	public String getFromUser() {
		return fromUser;
	}


	public void setFromUser(String fromUser) {
		this.fromUser = fromUser;
	}


	@Override
	public void sendMailServer(String sendUser, String title, String text) {
		//創建郵件的實體 用於封裝發送郵件需要的信息
		SimpleMailMessage simpleMailMessage=new  SimpleMailMessage();
		//郵件的發送人
		simpleMailMessage.setFrom(fromUser);
		//郵件接收人
		simpleMailMessage.setTo(sendUser);
		//郵件的標題
		simpleMailMessage.setSubject(title);
		//郵件的內容
		simpleMailMessage.setText(text);
		//發送郵件
	    javaMailSender.send(simpleMailMessage);
	}


	@Override
	public void sendFileMail(String sendUser, String title, String text, File file) {
		
		MimeMessage mimeMessage = null;
		
		try {
			mimeMessage =javaMailSender.createMimeMessage();
			//創建mimeMessageHelper對象用於處理帶有附件的郵件信息
			MimeMessageHelper mimeMessageHelper=new MimeMessageHelper(mimeMessage,true);
			mimeMessageHelper.setFrom(fromUser);
			mimeMessageHelper.setTo(sendUser);
			mimeMessageHelper.setSubject(title);
			mimeMessageHelper.setText(text);
			FileSystemResource r = new FileSystemResource(file);
			//添加附件
			mimeMessageHelper.addAttachment("附件", r);
			javaMailSender.send(mimeMessage);
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

controller編碼

package www.it.com.controller;

import java.io.File;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import www.it.com.server.MailServer;

/**
 * @author wangjie:
 * @version 創建時間:2019年8月27日 上午9:52:30
 * @Description 類描述:郵件發送的controller
 */

@RestController()
@RequestMapping("/mail")
public class MailController {
   
	@Autowired
	private MailServer mailServer;
	
	/**
	 * 簡單郵件的發送
	 * @return
	 */
	@RequestMapping("/send")
	public String sendMail() {
		//2694433816
		mailServer.sendMailServer("[email protected]", "你好", "明天去你傢玩");
		return "success";
	}
	
	
	/**
	 * 發送帶有附件的郵件
	 */
	@RequestMapping("/sendFile")
	public String sendFileMail() {
		File file=new File("C://Users//DELL//Desktop//學習資料.txt");
		mailServer.sendFileMail("[email protected]", "你好dsf", "這是第二封帶有附件的郵件", file);
		return "success";
	}
}

授權碼生成的步驟

登錄郵箱選擇設置

選擇賬戶

滑動到下面開啟相應的服務 選擇生成授權碼

到此這篇關於springboot整合mail實現郵箱的發送功能的文章就介紹到這瞭,更多相關springboot整合mail郵箱發送內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: