springboot利用JavaMailSender傳送郵件
之前用javamaill的方式傳送郵件,比較繁瑣,現在利用spring-mail來發送郵件,非常簡單
1.引入pom依賴,分別是freemarker郵件模板和spring-maill依賴
<!-- Spring Boot Freemarker 依賴,傳送HTML格式的郵件的方式 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- spring-boot-mail 傳送郵箱 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
2.加入配置在application.properties
#模板載入路徑
spring.freemarker.template-loader-path=classpath:/static/template/
#模板檔案字尾
spring.freemarker.suffix=.flt
spring.freemarker.enabled=true
spring.freemarker.cache=false
spring.freemarker.charset=UTF-8
spring.freemarker.content-type=text/html
spring.freemarker.allow-request-override=false
#是否需要檢查模板路徑是否存在
spring.freemarker.check-template-location=true
spring.freemarker.expose-request-attributes=false
spring.freemarker.expose-session-attributes=false
spring.freemarker.expose-spring-macro-helpers=false
#支援qq郵箱 163郵箱等
spring.mail.host=smtp.qq.com
spring.mail.protocol=smtp
#傳送者郵箱需要和實際傳送者一致,否則報錯501
#傳送者郵箱的授權碼,不是密碼,自己去qq郵箱設定
spring.mail.password=MM
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true
3.傳送郵件介面
public interface SendEmailService {
/**
* 傳送簡單郵件
* @throws Exception
*/
public void sendSimpleMail() throws Exception;
/**
* 傳送HTML郵件--程式碼重複樣式難看棄用
* @throws Exception
*/
public void sendHtmlSimpleMail() throws Exception;
/**
* 傳送模板檔案
* @throws Exception
*/
public void sendFreemarker() throws Exception;
}
4.傳送郵件實現部分
@Service
public class SendEmailServiceImpl implements SendEmailService {
private static final Logger LOGGER = LoggerFactory.getLogger(SendEmailServiceImpl.class);
@Autowired
private JavaMailSender mailSender;
@Autowired
private Configuration configuration;
public void sendSimpleMail() throws Exception {
LOGGER.info("準備傳送簡單郵件");
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("[email protected]");
message.setTo("[email protected]");
message.setSubject("主題:簡單郵件");
message.setText("測試郵件內容");
mailSender.send(message);
}
@Override
public void sendHtmlSimpleMail() throws Exception {
LOGGER.info("準備傳送HTML郵件");
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom("[email protected]");
helper.setTo("[email protected]");
helper.setSubject("HTML主題");
helper.setText("<html><body><img src=\"cid:springcloud\" >"
+ "</br>"
+"祝我們520快樂!"
+ "</body></html>,true);
// 傳送圖片
File file = ResourceUtils.getFile("classpath:static/image/WechatIMG1.jpeg");
helper.addInline("springcloud", file);
// 傳送附件
file = ResourceUtils.getFile("classpath:static/file/a.txt");
helper.addAttachment("附件名稱", file);
mailSender.send(message);
}
public void sendFreemarker() throws Exception {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom("[email protected]");
helper.setTo("[email protected]");
helper.setSubject("FREEMARKER主題郵件");
Map<String, Object> model = new HashMap<String, Object>();
model.put("content", "這是郵件內容");
model.put("path", "");
Template template = configuration.getTemplate("welcome.flt");
String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
helper.setText(text, true);
mailSender.send(message);
}
}
5指定的模板路徑下的模板檔案在src/main.resource/ 下的static/template下的 檔名.ftl
需要注意這裡和上面的model的賦值保持一致,否則會有空指標
<td colspan="2" style="font-size: 18px; line-height: 1.6;padding-top: 30px">
<div style="text-indent: 36px; padding-right: 24px">
${content}
</div>
</td>
6.傳送郵件測試類
@Test
public void testEmail() throws Exception {
//sendEmailService.sendSimpleMail();
//sendEmailService.sendHtmlSimpleMail();
sendEmailService.sendFreemarker();
}
ok,郵件到達指定郵箱啦!
程式碼中寫死了郵箱傳送者和接受者,這些可配置的,還可以傳送多人的,還剩下用mq非同步處理多人傳送。
嗯嗯,你看到這裡也知道qq號了啊,歡迎加qq交流學習,請備註:CSDN部落格
---------------------
原文:https://blog.csdn.net/zhangxiaomin1992/article/details/80420374
相關推薦
springboot利用JavaMailSender傳送郵件
之前用javamaill的方式傳送郵件,比較繁瑣,現在利用spring-mail來發送郵件,非常簡單 1.引入pom依賴,分別是freemarker郵件模板和spring-maill依賴 <!-- Spring Boot Freemarker 依賴,傳送HTML格式
13.Springboot 之 JavaMailSender傳送電子郵件
在很多網站系統應用中,電子郵件的傳送應該非常常見,如:驗證碼傳送、密碼找回郵件傳送、事件通知郵件傳送等。 下面簡單介紹一下在Springboot的開發中如何使用JavaMailSender傳送電子郵件。 引入Maven依賴包 <dependency> <groupId>or
Springboot 之 JavaMailSender傳送電子郵件
本文章來自【知識林】 在很多網站系統應用中,電子郵件的傳送應該非常常見,如:驗證碼傳送、密碼找回郵件傳送、事件通知郵件傳送等。 下面簡單介紹一下在Springboot的開發中如何使用JavaMail
使用spring的JavaMailSender傳送郵件
步驟: 一:pom.xml <!-- java郵件 --> <dependency> &nb
Spring JavaMailSender傳送郵件
個人選擇的傳送服務伺服器是QQ,所以要進行開啟QQ郵箱的SMTP服務,過程如圖所示: 在賬戶下設定開啟SMTP服務,需記住顯示的STMP密碼,點選“開啟”後發簡訊過去即可開啟 EmailSendTest: import org.junit.Test; im
SpringBoot整合JavaMail傳送郵件 --轉載
JavaMail是SUN提供給廣大Java開發人員的一款郵件傳送和接受的一款開源類庫,支援常用的郵件協議,如:SMTP、POP3、IMAP,開發人員使用JavaMail編寫郵件程式時,不再需要考慮底層的通訊細節如:Socket而是關注在邏輯層面。JavaMail可以傳送各種複雜MIME格式的郵件內容
Spring Boot使用JavaMailSender傳送郵件
http://www.cnblogs.com/wxc-xiaohuang/p/9532631.html https://blog.csdn.net/icannotdebug/article/details/79725297 https://docs.spring.io/spring/docs/4.3.21
利用JavaMail傳送郵件:smtp.163.com
一、利用JavaMail傳送郵件案例: 1、maven專案結構: 2、先在pom.xml裡邊加入Javamail依賴,系統會根據座標自動下載mail包(前提是配置好了maven): 3、配置email.properties屬性檔案,主要是為了不更改程式碼的前提下,該改變傳送郵件的一些基本資訊:
利用python傳送郵件
1. 點選設定,選擇POP3/SMTP/IMAP。 2. 第一次進入,這兩項應該是未勾選的。 3. 點選左側客戶端授權密碼,再點選重置授權碼。輸入簡訊驗證碼後,會提示設定授權密碼(不要和郵箱登陸密碼重複)。 4. 記住自己設定的授權密碼之後,開始用pyth
利用JavaMail傳送郵件示例
最近閒來無事,為了鞏固一下知識點,寫了一個利用JavaMail傳送郵件的例子。只寫了一個傳送的例子,以後有時間再寫下接收的例子。 1、簡單介紹一下JavaMail的傳送步驟 根據郵件會話屬性和密碼驗證器構造一個傳送郵件的session會話 通過session會話
python 利用 smtplib 傳送郵件方法
說明 python 自帶了 smtplib 庫 可以直接呼叫並進行郵件傳送 預設狀態下, python 利用 base64 進行使用者名稱密碼傳遞 測試期間, 可以開啟 debug 功能, 方便進行排錯 測試程式碼 impor
(Python)利用SMTP傳送郵件進階篇,傳送混合格式郵件
html很簡單,只要MIMEText中的引數改成html即可 附件也不難,難的是加圖片 雖然圖片可以當做附件傳送,但是顯然還需要一個加入正文的功能,方法是用html的img標籤把圖片加入。但是這樣會有個問題,一般的郵箱都會將這種連結遮蔽掉。這個問題有2種解決方法,第一種是
spring JavaMailSender 傳送郵件
配置JavaMailSenderImpl類 ** * @Configuration 表示是配置類 * @ComponentScan("com") 需要掃描的包路徑 * @PropertySource("classpath:mail.properties") 需要載入的
php利用smtp傳送郵件
PHP : 5.6.8 email工具類下載地址: http://files.cnblogs.com/files/rhythmK/email.class.zip 傳送郵件程式碼如下: require_once("email.class.php"); $sm
Springboot 整合 javamail傳送郵件535錯誤
好多夥伴都會遇到 javamail傳送郵件535錯誤 網上有很多經常能搜到的解決方案我姐不說了,提一下我的問題,以及很少能搜到的導致535錯誤的一種原因。 當你的jdk是1.8版本的時候,也是導致535的一種因素:解決:如果還有問題 大家就可以去網上搜搜了,其他的導致53
centos7 利用mailx傳送郵件
當需要伺服器定時傳送郵件到自己郵箱時,一個郵件服務就很重要了,以下主要是mailx的實現,主要是利用 1.安裝mailx yum install mailx -y 2.使用到的配置檔案只有一個,是/etc/mail.rc,通過修改配置檔案/etc/mail.rc可以使用外部SMTP伺服器,輕鬆實現l
(Python)利用SMTP傳送郵件終極篇,主送、抄送、暗送
在利用SMTP傳送郵件進階篇,傳送混合格式郵件一文中我解釋瞭如何傳送各種內容的郵件,但是收件人都是主送,沒有抄送和暗送。 文中相關程式碼如下: msg['from'] = user msg['to'] = ','.join(to_list) #注意,不是分號 msg[
nodejs利用nodemailer傳送郵件,163 和gmail的配置
安裝nodemailer: npm install nodemailer --save 我所使用的版本號是:0.7.1 1. 不配置任何的郵箱伺服器,同樣可以進行郵件的傳送 const nodeMailer = require("nodemailer"); le
Spring Boot中使用JavaMailSender傳送郵件
相信使用過Spring的眾多開發者都知道Spring提供了非常好用的JavaMailSender介面實現郵件傳送。在Spring Boot的Starter模組中也為此提供了自動化配置。下面通過例項看看如何在Spring Boot中使用JavaMailSender傳送郵件。 快速入門 在Spring
利用python 傳送郵件
#coding=utf-8 import traceback import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from e