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