1. 程式人生 > >springboot傳送郵件,常用方法

springboot傳送郵件,常用方法

一:pom檔案

springboot版本2.0

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

二:配置傳送資訊,配送傳送資訊有兩種方式

一種是在application檔案中配置

#郵件配置
spring.mail.host=郵件伺服器地址
spring.mail.username=使用者名稱
spring.mail.password=密碼
spring.mail.default-encoding=UTF-8
#登入伺服器是否需要認證
spring.mail.smtp.auth=true
#SSL證書Socket工廠
spring.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
#使用SMTPS協議465埠
spring.mail.smtp.socketFactory.port=465

#顯示在收件人郵箱裡面的發件人名稱
spring.mail.self.username=使用者名稱

一種在程式碼中配置,資料可以從動態更改

	/**
	 * 這個方法在實際應用中,springboot會通過在配置檔案application.xml
	 * 中加配置自動例項化JavaMailSenderImpl。
	 * 這裡只是手動把資訊寫入JavaMailSenderImpl中。
	 */
	public static JavaMailSenderImpl initJavaMailSender() {
//		以下配置資訊具體作用請自行百度
		Properties properties = new Properties();
		properties.setProperty("mail.debug", "true");// 是否顯示除錯資訊(可選)
		properties.setProperty("mail.smtp.starttls.enable", "false");
		properties.setProperty("mail.smtp.socketFactory.class",
				"javax.net.ssl.SSLSocketFactory");
		properties.setProperty("mail.smtp.auth", "true");
		properties.setProperty("mail.smtp.starttls.required", "true");
		properties.put(" mail.smtp.timeout ", " 25000 ");

//		傳送郵件配置
		JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
		javaMailSender.setJavaMailProperties(properties);
		javaMailSender.setHost("網易:smtp.ym.163.com,QQ:smtp.qq.com");
		javaMailSender.setUsername("傳送者郵箱");
		javaMailSender.setPassword("郵箱密碼,個人QQ則是開通smtp給的驗證碼");
                javaMailSender.setPort(465);// 傳送郵件埠號,不寫也沒問題
		javaMailSender.setDefaultEncoding("UTF-8");

		return javaMailSender;
	}

第一種因為是配置,所以在使用時要注入javaMailSender。

@Autowired
JavaMailSender javaMailSender;

第二種接收一下返回值

JavaMailSenderImpl mailSender = initJavaMailSender();

三:測試類程式碼

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootDemoApplicationTests {

	/*@Autowired
        Configuration configuration;*/

	/*@Autowired
	JavaMailSender javaMailSender;*/

	private String from = "
[email protected]
"; private String[] tos = {"[email protected]"}; private String[] cc = {"[email protected]","[email protected]"}; private String[] bcc = {""}; /** * 傳送附件 * @throws Exception */ @Test public void sendAttachmentsMail() throws Exception { // 傳送郵件需要的配置資訊 JavaMailSenderImpl mailSender = initJavaMailSender(); // 初始化傳送郵件資訊 MimeMessage mimeMessage = mailSender.createMimeMessage(); // 是否有檔案 MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); // 郵件具體資訊---------------------------------------------------------------- // 傳送者 helper.setFrom(from); // 接收者,可傳陣列 helper.setTo(tos); // 抄送者,可傳陣列 helper.setCc(cc); // 密送者,可傳陣列 helper.setBcc(bcc); // 郵件標題 helper.setSubject("主題:有附件"); // 郵件內容 helper.setText("有附件的郵件"); // 如果內容是html,可以把html換成單獨的模版 // helper.setText("<html><body><h1>這是html<h1></body></html>", true); // 附件資訊 FileSystemResource file = new FileSystemResource(new File("D:/test.png")); // 添加發送附件 helper.addAttachment("附件-1.jpg", file); helper.addAttachment("附件-2.jpg", file); // 郵件傳送 mailSender.send(mimeMessage); } /** * 模版郵件 * @throws Exception */     /*@Test     public void sendTemplateMail() throws Exception {     JavaMailSenderImpl mailSender = initJavaMailSender();     MimeMessage mimeMessage = mailSender.createMimeMessage();     MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);     helper.setFrom("[email protected]");     helper.setTo("[email protected]");     helper.setSubject("主題:模板郵件");      Map<String, Object> model = new HashedMap();     model.put("username", "zyz"); //     這裡引用模版郵件用的是freemarker接收的     Template t = configuration.getTemplate("template.vm"); // 預設是在templates目錄下,具體路徑自己寫     String text = FreeMarkerTemplateUtils.processTemplateIntoString(t, model);     helper.setText(text, true);     mailSender.send(mimeMessage);     }*/ /** * 這個方法在實際應用中,springboot會通過在配置檔案application.xml * 中加配置自動例項化JavaMailSenderImpl。 * 這裡只是手動把資訊寫入JavaMailSenderImpl中。 */ public static JavaMailSenderImpl initJavaMailSender() { // 以下配置資訊具體作用請自行百度 Properties properties = new Properties(); properties.setProperty("mail.debug", "true");// 是否顯示除錯資訊(可選) properties.setProperty("mail.smtp.starttls.enable", "false"); properties.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); properties.setProperty("mail.smtp.auth", "true"); properties.setProperty("mail.smtp.starttls.required", "true"); properties.put(" mail.smtp.timeout ", " 25000 "); // 傳送郵件配置 JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); javaMailSender.setJavaMailProperties(properties);  javaMailSender.setHost("網易:smtp.ym.163.com,QQ:smtp.qq.com");                  javaMailSender.setUsername("傳送者郵箱");                 javaMailSender.setPassword("郵箱密碼,個人QQ則是開通smtp給的驗證碼");                        javaMailSender.setPort(465);                 javaMailSender.setDefaultEncoding("UTF-8");return javaMailSender;         } }

模版

<html>
<body>
    <h3>你好, ${username}, 這是一封模板郵件!</h3>
</body>
</html>

相關推薦

springboot傳送郵件常用方法

一:pom檔案springboot版本2.0<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-m

linux , python 傳送郵件基本實現了mutt常用功能

#! /usr/bin/python3 from email import encoders from email.header import Header from email.mime.base import MIMEBase from email.mime.mult

Java之線程常用方法線程同步死鎖

時間 imp log 沖突 根據 oms adl 無法 誰的 1, 線程的概念 進程與線程 進程:每個進程都有獨立的代碼和數據空間(進程上下文),進程間的切換會有較大的開銷,一個進程包含1--n個線程。(進程是資源分配的最小單位) 線程:同一類線程共享代碼和數據空間,每個線

Oracle 儲存過程中傳送郵件並支援使用者驗證 中文標題和內容

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

springboot 傳送郵件 465埠

springboot預設使用的是25埠.之前寫的程式在本地傳送郵件沒有問題,後來放到伺服器上,傳送失敗. 我們的伺服器使用的是阿里雲,原因就是因為阿里雲伺服器預設是禁止25埠的.所用只能改用  465或者其他埠. 具體配置如下: #email spring.mail.

傳送郵件封裝的方法

/// <summary> /// 傳送郵件 /// </summary> /// <param name="fromMail">發件人郵箱</param> /// <param nam

springboot傳送郵件的實現例子

springboot是集大成者,對於傳送郵件的功能也不例外。而且往往是原來的功能實現更簡單,方便。更符合Facade Pattern。 下面就是springboot傳送郵件的實現例子,程式碼已封裝好,按照提示的步驟配置好就可以直接用了。當然如果你是新搭的專案,需要引入springboot的mail包

元組的建立特性常用方法

元組的建立 對於元組,其可以儲存任意資料型別,但儲存的資料不能改變,即不能增刪改查。在元組中,除了數值型別可以相加減外,其餘型別都不可以,並且元組不可以被複制。 定義元組 t = (1,1.2,True,‘westos’) print(t,type(t)) 如果元組裡麵包含可變資料型

springboot傳送郵件問題總結

springboot內部集成了spring的郵件傳送功能,所以在使用springboot進行郵件傳送的時候需要在maven中加入以下依賴。 <dependency> <groupId>org.springframework.boot<

SpringBoot傳送郵件遇到的錯誤:org.springframework.mail.MailAuthenticationException: Authentication failed;

SpringBoot傳送郵件時遇到的異常:org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.Authentic

SpringBoot傳送郵件(帶附件以及不帶附件)

1.QQ郵箱 首先登入QQ郵箱>>>登入成功後找到設定>>>然後找到郵箱設定>>>點選賬戶>>>找到POP3|SMTP服務>>>點選開啟(開啟需要驗證,驗證成功後會有一串授

SpringBoot傳送郵件

1.實用idea 新建一個springboot 專案 2.在專案的maven 依賴中新增如下 依賴 <dependency> <groupId>org.springframework.boot</groupId>

springboot 傳送郵件+模板+附件

package com.example.demo;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.

[Python]python3使用smtplib傳送郵件帶xlsx附件

#encoding=utf8 import smtplib from email.mime.multipart import MIMEMultipart from email.header import Header from email.mime.text import M

java中傳送郵件如何設定發件人名稱、暱稱

msg.setFrom (new InternetAddress ("[email protected]", "這裡是需要的暱稱", "UTF-8")); msg.setSubject (subject); msg.setText (content); msg.ad

SpringBoot傳送郵件(使用thymeleaf模板)

1. 構建環境 在pom.xml中新增以下依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo

python2.6.x/python3傳送郵件並在正文中顯示附件中的圖片

直接在HTML郵件中連結圖片地址是不行的。引文大部分郵件服務商都會自動遮蔽帶有外鏈的圖片,因為不知道這些連結是否指向惡意網站。只需要在HTML中通過 方式一:引用src="cid:0"就可以把附件作為圖片嵌入了。如果有多個圖片,給它們依次編號,然後引用不同的cid:x即可。 Q: 使用方式一

Python Flask傳送郵件Flask-Mail郵件擴充套件

安裝 Flask-Mail : pip install Flask-Mail   demo.py(傳送郵件): from flask import Flask from flask_mail import Mail, Message # 匯入

spring boot 用javaMail傳送郵件很多坑

直接傳送總是報錯 554 dt:spm 被163攔截,認為非法,抄送一份給自己就解決了。但是顯示抄送人,很煩。 service層 package com.llong.email.mail; import org.springframework.beans.factory.anno

【JavaEE學習筆記】SpringMVC_01_快速搭建一個環境簡介常用方法

SpringMVC_01 A.快速搭建一個SpringMVC環境 1.搭建框架 <project xmlns="http://maven.apache.org/POM/4.0.0" xm