javaMail 的郵件傳送包括了抄送(CC),密送(BCC)採用springBoot
首先加程式碼配置檔案來一個
mail.properties
mail.smtp.host=smtp.qq.com
mail.smtp.port=465
mail.smtp.SSLport=587
mail.smtp.starttlsEnable=true
mail.smtp.auth=true
[email protected]
mail.smtp.password=qrqzbcfslyhaai
mail.smtp.timeout=50000
mail.smtp.connectiontimeout=50000
mail.smtp.nickname=ewe
我使用的是騰訊qq郵箱
首先要去騰訊qq的設定===》賬戶》》開通授權碼,第三方登陸需要授權碼當成密碼使用
然後在springboot引入這個配置檔案
測試可用package com.ewe.core.utils; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; import com.ewe.core.datasource.TransactionAspect; import com.ewe.user.model.BatchSendMessage; @Component @ConfigurationProperties(prefix="mail.smtp") @PropertySource("mail.properties") public class MailUtil { //("${mail.smtp.host}") private String host; //("${mail.smtp.port}") private String port; //("${mail.smtp.SSLport}") private String SSLport; //("${mail.smtp.starttlsEnable}") private String starttlsEnable; //("${mail.smtp.auth}") private String auth; //("${mail.smtp.connectiontimeout}") private String connectiontimeout; //("${mail.smtp.account}") private String account; //("${mail.smtp.password}") private String password; //("${mail.smtp.timeout}") private String timeout; private String nickname ="ewe";//傳送者,顯示的發件人名字 protected static Log LOGGER = LogFactory.getLog(MailUtil.class); //帶CC(抄送)的郵件傳送 public boolean sendSSLEmailWithCC(List<String> listEmails, List<String> cc, String title, String content ,List<String> bcc) throws Exception { LOGGER.info("開始傳送郵件,email==>"+listEmails+",title==>"+title); Properties props = System.getProperties(); props.put("mail.smtp.host", host); // 指定協議 props.put("mail.transport.protocol", "smtp"); props.put("mail.smtp.port", SSLport); props.put("mail.smtp.starttls.enable", starttlsEnable); props.put("mail.smtp.auth", auth); props.put("mail.smtp.connectiontimeout", connectiontimeout); props.put("mail.smtp.timeout", timeout); props.put("mail.smtp.debug", true); Transport transport = null; Session session = Session.getDefaultInstance(props, null); transport = session.getTransport("smtp"); transport.connect(host, account, password); MimeMessage msg = new MimeMessage(session); msg.setSentDate(new Date()); InternetAddress fromAddress = new InternetAddress(account,nickname); msg.setFrom(fromAddress); InternetAddress[] toAddress = new InternetAddress[listEmails.size()]; for(int k = 0;k<listEmails.size();k++){ String emailAddress = listEmails.get(k); new InternetAddress(emailAddress); toAddress[k]=new InternetAddress(emailAddress); } LOGGER.debug("當前需要傳送郵件的地址資訊============>{}"+Arrays.deepToString(toAddress)); msg.addRecipients(Message.RecipientType.TO, toAddress); //增加CC功能 if(cc != null) { InternetAddress[] ccAddress = new InternetAddress[cc.size()]; for(int k = 0;k<cc.size();k++){ String emailAddress = cc.get(k); new InternetAddress(emailAddress); ccAddress[k]=new InternetAddress(emailAddress); } msg.addRecipients(Message.RecipientType.CC, ccAddress); } //增加BCC功能 if(bcc != null) { InternetAddress[] bccAddress = new InternetAddress[bcc.size()]; for(int k = 0;k<bcc.size();k++){ String emailAddress = bcc.get(k); new InternetAddress(emailAddress); bccAddress[k]=new InternetAddress(emailAddress); } msg.addRecipients(Message.RecipientType.BCC, bccAddress); } msg.setSubject(title, "UTF-8"); //傳送文字郵件 msg.setContent(content, "text/html; charset=utf-8"); transport.sendMessage(msg, msg.getAllRecipients()); LOGGER.info("郵件已傳送"); return true; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public String getPort() { return port; } public void setPort(String port) { this.port = port; } public String getSSLport() { return SSLport; } public void setSSLport(String sSLport) { SSLport = sSLport; } public String getStarttlsEnable() { return starttlsEnable; } public void setStarttlsEnable(String starttlsEnable) { this.starttlsEnable = starttlsEnable; } public String getAuth() { return auth; } public void setAuth(String auth) { this.auth = auth; } public String getConnectiontimeout() { return connectiontimeout; } public void setConnectiontimeout(String connectiontimeout) { this.connectiontimeout = connectiontimeout; } public String getAccount() { return account; } public void setAccount(String account) { this.account = account; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getTimeout() { return timeout; } public void setTimeout(String timeout) { this.timeout = timeout; } public static Log getLOGGER() { return LOGGER; } public static void setLOGGER(Log lOGGER) { LOGGER = lOGGER; } public String getMailTitle() { return nickname; } public void setMailTitle(String nickname) { this.nickname = nickname; } }
依賴maven加的是
<!-- email -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.5.4</version>
</dependency>
裡面的一些port 是不加密 SSLport是加密的
相關推薦
javaMail 的郵件傳送包括了抄送(CC),密送(BCC)採用springBoot
首先加程式碼配置檔案來一個 mail.properties mail.smtp.host=smtp.qq.com mail.smtp.port=465 mail.smtp.SSLport=587 mail.smtp.starttlsEnable=true mail.
通過javaMail傳送郵件,可選新增多個收件人,密送,抄送,多個附件,超實用
自己通過學習多人的程式碼,並整理了一個簡單,呼叫方便的通過javaMail傳送郵件。只需填寫發件郵箱地址,密碼;收件人地址,附件,選擇是否儲存,設定自己傳送郵件時的暱稱就ok了。程式碼自動匹配設定smtp服務地址和埠。 傳送郵件需要郵箱地址和密碼,開啟P
c#傳送郵件(帶抄送,密送,群發,附件)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Mail; using System.Net.Mime; using System.Text; using
阿里雲ECS禁用25埠導致JavaMail郵件傳送失敗
專案需要在阿里雲ECS上將每日的簡易彙總資訊通過郵件傳送出來,這裡使用的JavaMail預設的傳送埠是25,而阿里雲出於伺服器安全性考慮偏偏25埠是不開放的,導致郵件伺服器連線超時傳送失敗,報錯如下: MailSendException: Mail server
javaMail郵件傳送
MailAuthenticator.java package com.sunrise.jop.common.mail; import javax.mail.Authenticator; import javax.mail.PasswordAuthentication;
javamail郵件傳送例子
public class EmailTask{ // Session used by the javamail classes private Session session; // List of messages郵件傳送資訊物件列表 private List<
關於javamail郵件傳送地址錯誤和判斷是否傳送成功的問題
使用javamail做傳送郵件功能的一些問題,這裡寫出來給大家分享: 問題1;如何判斷郵件是否傳送成功 使用try catch捕獲傳送郵件程式碼的,如果出現messageException異常,郵件傳送失敗 一下程式碼是我封裝過的複合郵件的傳送功能
javamail 郵件傳送
1.) 是用javamail包; 2) 在發件人郵箱的設定中開啟POP3/SMTP/IMAP import java.util.Properties; import javax.mail.Message; import javax.mail.Session; impor
jenkins郵件傳送不了?
jenkins郵件傳送不了的,請修改Jenkins主目錄下面jenkins.model.JenkinsLocationConfiguration.xml 中的adminAddress節點,改成你需要用
[您有新的未分配科技點]博弈論進階:似乎不那麽恐懼了…… (SJ定理,簡單的基礎模型)
裏的 如果 cnblogs 經典 ant 控制 nim osi 取石子 這次,我們來繼續學習博弈論的知識。今天我們會學習更多的基礎模型,以及SJ定理的應用。 首先,我們來看博弈論在DAG上的應用。首先來看一個小例子:在一個有向無環圖中,有一個棋子從某一個點開始一直向它的出點
大三筆記(困擾了一下午的bug,居然是路徑問題)
19號在寫測試ajax與controller互動時,一個bug困擾了我。 先貼程式碼。 index.jsp <head> <title>開發中......</title> <script type="text/javascript" src=
部署成功,終於看到了夢寐以求似曾相識的介面,哈哈。(工欲善其事必先利其器)
大坑:關於,用了nginx不需要用這個設定了,因為json是自己拼接的不是標準json //linux設定跨域 本地不需要加跨域的設定 //Vue.http.options.emulateJSO
介紹NPTL (經典--詮釋了執行緒的概念,以及linux排程單位)
POSIX Thread Library (NPTL)使Linux核心可以非常有效的執行使用POSIX執行緒標準寫的程式。這裡有一個測試資料,在32位機下,NPTL成功啟動100000個執行緒只用了2秒,而不使用NPTL將需要大約15分鐘左右的時間。歷史在核心2.6以前的排程實
機器人行走( * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們)
/** * 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單,只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們可以對小車輸入如下的指令: 15L10R5LRR10R20 則,小車先
機器人行走 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單, 只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。
/*機器人行走 * 【程式設計題】(滿分18分) 某少年宮引進了一批機器人小車。可以接受預先輸入的指令,按指令行動。小車的基本動作很簡單, 只有3種:左轉(記為L),右轉(記為R),向前走若干釐米(直接記數字)。 例如,我們可以對小車輸入如下的指令
PyQt4 模擬記事本基本功能(保存,打開文件)
int .sh idt img 問題 top 我們 文件 pyqt 1. 默認【保存】按鈕enable 2. 修改文本的內容後,【enable】 3. 解決字符亂碼問題:utf-8 # -*- coding: utf-8 -*- import sys from PyQt
linux基礎第七天(nfs服務,計劃任務crond服務)
文件共享 開發 dns sunday 6.2 exe eboot tree -s nfs服務 ===============服務端 介紹: NFS 是Network File System的縮寫,即網絡文件系統。一種使用於分散式文件系統的協定,由Sun公司開發,於198
卅川的狀態機之路(創作中,不定時上傳)
rom 不同的 大學 核心 追溯 選擇 有限狀態機 span 任務 川的第一篇幹貨,將從講述FSM(有限狀態機)開始。 川第一次接觸狀態機這種東西,還得追溯到剛到暢遊工作,破解了別的遊戲的代碼(遊戲程序就是這麽沒節操和底線,嗯!)才知道有這麽個東西的。雖然大學學習過相
簽入代碼(新建分支,新建推拉請求)關聯工作項,卻找不到自己需要的工作項
一點 但是 spa 由於 signed and esc 使用手冊 play 問題描述TFS 2017在用戶體驗方面,相比之前的版本已經做了非常大的提升。由於變化大,使用手冊和文檔(特別是中文)的更新不及時,在使用過程中用戶往往存在許多困惑。昨天我在頁面中簽入代碼,同時需要關
Source Insight 中文註釋為亂碼解決辦法(完美解決,一鍵搞定)【轉】
ash save sys lan sim edit ext pan character 轉自:http://blog.csdn.net/bjarnecpp/article/details/70174752 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 S