Springboot實現發送郵箱

 https://blog.csdn.net/xubin1623875795/article/details/78967141html

 http://www.cnblogs.com/jmcui/p/9758442.htmljava

首先建立一個郵箱帳號,建議@126.com,@163.com,@qq.com 均可以web

開啓smtp,如下是使用圖解:spring

 

 

 

建立maven項目在pom.xml引入依賴:app

        <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 支持發送郵件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
 
    </dependencies>
     

 

package cn.et;
 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication
public class Test {
    public static void main(String[] args) {
        SpringApplication.run(Test.class, args);
    }
}

 

 有了 javaMailSender,那麼郵件發送就是一件再簡單不過的事情了。咱們只須要將 javaMailSender 的 Bean 注入到咱們本身的實現類中,而後使用 JavaMail API 來發送 Email。maven

    一、文本郵件發送

package cn.et;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
@RestController
public class MailController {
	
	@Autowired
	JavaMailSender jms;
	
	@GetMapping("/send")
	public String send(){
		//創建郵件消息
		SimpleMailMessage mainMessage = new SimpleMailMessage();
		//發送者
		mainMessage.setFrom("xxxxx@126.com");
		//接收者
		mainMessage.setTo("xxxx@qq.com");
		//發送的標題
		mainMessage.setSubject("嗨嘍");
		//發送的內容
		mainMessage.setText("hello world");
		jms.send(mainMessage);
		return "1";
	}
}

或者如下方式spring-boot

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class MailController {
    @Autowired
    JavaMailSender jms;
@Value(
"${spring.mail.from}") //發送人的郵箱 好比155156641XX@163.com private String from;
@GetMapping(
"/send") public String send(){ //創建郵件消息 SimpleMailMessage mainMessage = new SimpleMailMessage(); //發送者 mainMessage.setFrom(from); //接收者 mainMessage.setTo("838089327@qq.com"); //發送的標題 mainMessage.setSubject("嗨嘍"); //發送的內容 mainMessage.setText("hello world"); jms.send(mainMessage); return "1"; } }

 

  二、附件郵件發送

    Spring 的 Email 功能並不侷限於純文本的 Email。咱們還能夠添加附件。若是要發送帶有附件的 Email,關鍵技巧是建立 multipart 類型的消息 ———— Email由多個部分組成,其中一部分是 Email 體,其餘部分是附件。爲了發送 multipart 類型的 Email,你須要建立一個MIME(Multipurpose Internet Mail Extensions)的消息。ui

 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

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

@RestController
public class MimeEmailController {
    @Autowired
    JavaMailSender javaMailSender;
    @Value("${spring.mail.from}")
    String from;
    @GetMapping("/sendMime")
    public void send() throws MessagingException {
        // MimeMessage 自己的 API 有些笨重,咱們可使用 MimeMessageHelper
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        // 第二個參數是 true ,代表這個消息是 multipart類型的/
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setFrom(from);
        mimeMessageHelper.setTo("838089327@qq.com");
        mimeMessageHelper.setSubject("附件郵件主題");
        mimeMessageHelper.setText("附件郵件內容");
        //添加附件,第一個參數表示添加到 Email 中附件的名稱,第二個參數是圖片資源
        mimeMessageHelper.addAttachment("boot.png", new File("C:\\Users\\admin\\Pictures\\1.png"));
        javaMailSender.send(mimeMessage);
    }
}

 

三、富文本郵件發送

     Spring 的 Email 功能除了能夠添加附件外,甚至可使用 HTML 來美化消息體的內容。發送富文本的 Email 與發送簡單文本的 Email 並無太大區別,關鍵是將setText() 方法的消息文本設置爲 HTML,並將第二個參數設置爲 true,表示這是 HTML 的富文本。spa

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

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

@RestController
public class MimeEmailController { @Autowired JavaMailSender javaMailSender; @Value("${spring.mail.from}") String from;
   //富文本發送郵件
    @GetMapping("/htmlSend")
    public String sendHtml() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
        mimeMessageHelper.setFrom(from);
        mimeMessageHelper.setTo("838089327@qq.com");
        mimeMessageHelper.setSubject("富文本郵件主題");
        String html = "<html><body><h4>Hello,SpringBoot</h4><img src='cid:boot' /></body></html>";
        mimeMessageHelper.setText(html, true);
        // 設置內嵌元素 cid,第一個參數表示內聯圖片的標識符,第二個參數標識資源引用
        mimeMessageHelper.addInline("boot",  new File("C:\\Users\\admin\\Pictures\\1.png"));
        javaMailSender.send(mimeMessage);
        return "1";
    }
相關文章
相關標籤/搜索