java郵件提醒實現
【背景】
最近做專案的時候,有這樣一個需求,因為專案中的流程是分級流轉審批的過程,所以當前人操作完成之後,需要程式的一個固定郵箱通過郵件通知下級相應人員進行處理,所以也就有了小編今天的這篇博文。【操作步驟】
1.引入activation.jar、commons-email-1.1.jar、mail.jar這三個jar包,百度搜索下載或者單擊此百度網盤連結(請單擊此連結下載)2.將共用的資訊放到配置檔案中(這裡只附上一個圖片,因為程式碼會將中文內容轉換為其它格式)
注:下面的message1-7全部為郵件內容部分,這裡為了實現定製化將公共內容放到一個地方存放,才將其拆開;下面的host內容請按照你郵箱的地址查詢相關的host
3.建立mail實體類,並通過靜態方法讀取配置檔案中的資訊
- package com.gxt.common.vo; import java.io.IOException; import java.io.InputStream; import java.util.Properties; /** * mail實體 * @author mk * */ public class Mail { public static final String ENCODEING = "UTF-8"; private static String host; //伺服器地址 private static String sender; //發件人的郵箱 private String receiver;//收件人的郵箱 private static String name; //發件人暱稱 private static String username;//賬號 private static String password;//密碼 private static String subject; //主題 private String message; //詳情 private static String message1; //詳情1 private static String message3; //詳情3 private static String message5; //詳情5 private static String message7; //詳情7 //將下面內容放到配置檔案mail.properties中,方便修改 static{ InputStream in = Mail.class.getResourceAsStream("/mail.properties"); Properties p = new Properties(); try { p.load(in); host =p.getProperty("Host"); sender =p.getProperty("sender"); name =p.getProperty("name"); username =p.getProperty("username"); password =p.getProperty("password"); subject =p.getProperty("subject"); message1 =p.getProperty("message1"); message3 =p.getProperty("message3"); message5 =p.getProperty("message5"); message7 =p.getProperty("message7"); } catch (IOException e) { e.printStackTrace(); } } public static String getHost() { return host; } public static void setHost(String host) { Mail.host = host; } public static String getSender() { return sender; } public static void setSender(String sender) { Mail.sender = sender; } public String getReceiver() { return receiver; } public void setReceiver(String receiver) { this.receiver = receiver; } public static String getName() { return name; } public static void setName(String name) { Mail.name = name; } public static String getUsername() { return username; } public static void setUsername(String username) { Mail.username = username; } public static String getPassword() { return password; } public static void setPassword(String password) { Mail.password = password; } public static String getSubject() { return subject; } public static void setSubject(String subject) { Mail.subject = subject; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public static String getMessage1() { return message1; } public static void setMessage1(String message1) { Mail.message1 = message1; } public static String getMessage3() { return message3; } public static void setMessage3(String message3) { Mail.message3 = message3; } public static String getMessage5() { return message5; } public static void setMessage5(String message5) { Mail.message5 = message5; } public static String getMessage7() { return message7; } public static void setMessage7(String message7) { Mail.message7 = message7; } } -
4.建立工具類,呼叫jar包中的內容實現郵件傳送
- package com.gxt.common.util; import java.sql.Date; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; import com.gxt.common.vo.Mail; import com.miitgxt.common.util.ResultInfo; /** * 郵件傳送工具類 * @author mk * */ public class MailUtil { //傳送呼叫的方法 public ResultInfo send(Mail mail){ //定製化返回的內容 ResultInfo result = new ResultInfo(false,"郵件傳送失敗請與管理員聯絡"); //傳送email HtmlEmail email = new HtmlEmail(); try{ //System.out.println(mail.getHost()+"---"+mail.getSender()+"---"+mail.getName()+"---"+mail.getUsername()+"---"+mail.getPassword()+"---"+mail.getSubject()); //這裡是SMTP傳送伺服器的名字:163的如下:“smtp.163.com” email.setHostName(mail.getHost()); //字元編碼集的設定 email.setCharset(Mail.ENCODEING); //收件人的郵箱 email.addTo(mail.getReceiver()); //傳送人的郵箱 email.setFrom(mail.getSender(),mail.getName()); //如果需要認證資訊的話,設定認證:使用者名稱-密碼。分別為發件人在郵件伺服器上的註冊名稱和密碼 email.setAuthentication(mail.getUsername(), mail.getPassword()); //要傳送的郵件主題 email.setSubject(mail.getSubject()); //要傳送的資訊,由於使用了HtmlEmail,可以在郵件內容中使用HTML標籤 email.setMsg(mail.getMessage()); //傳送 email.send(); result.setStatus(true); return result; }catch(EmailException e){ return result; } } //將郵件內容組裝的方法 public ResultInfo setMail(String usermail, String message2 ,String message4){ Mail mail = new Mail(); mail.setReceiver(usermail); //接收人 //放入配置檔案中的新增部分 StringBuffer message = new StringBuffer(); message.append(mail.getMessage1()); message.append(message2); message.append(mail.getMessage3()); message.append(message4); message.append(mail.getMessage5()); Date datatime = new java.sql.Date(new java.util.Date().getTime()); message.append(datatime.toString()); message.append(mail.getMessage7()); mail.setMessage(message.toString()); MailUtil mailUtil = new MailUtil(); ResultInfo isstr = mailUtil.send(mail); return isstr; } } -
5.寫一個main方法進行測試
-
public static void main(String[] args) throws IOException {
MailUtil mailUtil = new MailUtil();
ResultInfo aaa = mailUtil.setMail("[email protected]", "收件人姓名XXX", "郵件內容");
if (aaa.isStatus()) {
System.out.println("傳送成功");
}else{
System.out.println("傳送失敗");
}
}
-
6.效果展示,如下圖
【思路擴充套件】
感興趣的朋友可以通過反編譯工具去看jar中具體實現郵件傳送的程式碼哦O(∩_∩)O~【總結感受】
本文借鑑部落格:請單擊連結檢視在工作中,遇到相應的需求,然後解決它,這就是江湖,這就是江湖中的經驗
在解決問題的過程中也讓自己進行了大量的思考,如何讓自己的程式碼擁有更好的複用性,如何讓自己的程式碼更加簡潔,如何讓自己的程式碼更加高效?
另外小編還會去思考如何讓自己做的功能能夠更好的服務使用者,可能這一點是最重要的吧,所謂得使用者者得天下
收拾行囊,繼續闖蕩自己的一個人的江湖啦O(∩_∩)O~
相關推薦
java郵件提醒實現
【背景】 最近做專案的時候,有這樣一個需求,因為專案中的流程是分級流轉審批的過程,所以當前人操作完成之後,需要程式的一個固定郵箱通過郵件通知下級相應人員進行處理,所以也就有了小編今天的這篇博文。 【操作步驟】 1.引入activation.jar、commo
java郵件介面實現
最近公司在開發一個專案,用到了以前沒接觸的介面。現在在這裡做下記錄。 1:引入jar包:mail.jar。 2:配置郵件地址(mail.properties) mail.smtp.auth = true mail.smtp.host = smtp
Java代碼實現發送郵件
int subject transport 用戶名 [] 身份認證 發送 args 文件創建 package com.ust.email; import java.io.File;import java.util.Date; import javax.activation.
Java郵件傳送的簡單實現
java郵件傳送:利用現有的郵件賬戶傳送郵件,比如說,我在網易註冊一個郵箱賬戶,通過JAVA操控,我可以不親自登入網易郵箱,讓程式自動的使用網易郵箱傳送郵件。這一機制被廣泛的用在註冊啟用和垃圾郵件
Java 基於JavaMail實現向QQ郵箱傳送郵件
需求 最近專案在做新聞爬蟲,想實現這個功能:爬蟲某個頁面失敗後,把這個頁面的 url 發到筆者的郵箱。最終實現的效果圖如下,後期可以加上過濾標籤、失敗狀態碼等,方便分類搜尋異常。 開發人員可以根據郵件裡的 url 和堆疊資訊,分析爬蟲失敗的原因。 是
AD賬號密碼過期郵件提醒-powershell實現--密碼加密(新增)
加密部分參考:http://www.bubuko.com/infodetail-1846894.html 首先將在某臺主機上上建立一個share folder,設定許可權為Everyone讀取,裡面將儲存加密後的密碼檔案,檔案命名為Password.txt。 新建一個加密
Java傳送郵件簡單實現以及問題的解決
利用Java傳送郵件的過程主要有一下步驟: 建立Session物件,配置屬性利用Session建立Message物件,然後設定發件人、收件人、郵件主題和正文利用Transport物件傳送郵件 需要的jar有2個:activation.jar和mail.jar 程式碼如下
Java 通過SMTP實現傳送QQ郵件
在eclipse中建立專案,並把javax.amil.jar和commons-email-1.5,jar複製到專案中連結:https://pan.baidu.com/s/1sQjA1GEpKi6IJJRGHKxjeA 密碼:4ene新增步驟:1.首先在專案下建立一個資料夾,儲
Jenkins 實現前端自動打包,自動部署程式碼及郵件提醒功能
在之前的公司,我們前端使用webpack構建專案,專案構建完成後,我們會使用ftp或linux的一些命令工具上傳我們的檔案到伺服器上,這種方式雖然是可以,但是最近面試的時候,人家會問我前端如何部署專案,我就說我們公司目前是這樣操作的,最後人家會感覺很low,最後總之總之沒有面試上。因此今天來給大家介紹下使用J
Delphi - Server Monitor開發並實現指定埠定時重新整理、重啟和郵件提醒等功能
專案背景 近期,總經辦郵件反饋考勤資料頻繁丟失,請IT排查其根本原因,並提供整改措施。 措不及防,這個專案當初並不是IT主導的,是裝置部採購,然後協同軟體供應商直接安裝、部署和除錯的,IT只是提供幾個資料庫表介面給供應商。然後我們就開始在裝置、總經辦、供應商之間相互扯皮,之所以扯皮的原因是,經過供應商
Java利用Redis實現消息隊列
.get keys rpo throws max del 鍵值 先進先出 instance 應用場景 為什麽要用redis?二進制存儲、java序列化傳輸、IO連接數高、連接頻繁 一、序列化 這裏編寫了一個java序列化的工具,主要是將對象轉化為byte數組,和根
Java通過 Socket 實現 TCP服務端(一個實例)
trac write 建立 回復 狀態 else 應用程序 字符 system 1 Java Socket簡介 所謂socket 通常也稱作”套接字“,用於描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過”套接字”向網絡發出請求或者應答網絡請求。Socket和S
RabbitMQ第二篇:java簡單的實現RabbitMQ
ech pre cer wait clas comm amqp cti 一次 前言:在這裏我將用java來簡單的實現rabbitMQ。下面我們帶著下面問題來一步步的了解和學習rabbitMQ。 1:如果消費者連接中斷,這期間我們應該怎麽辦 2:如何做到負載均衡 3:如何有效
【轉載】對一致性Hash算法,Java代碼實現的深入研究
困難 之前 存在 itl ger 正常 我不 操作 算法實現 原文地址:http://www.cnblogs.com/xrq730/p/5186728.html 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一
[Java][Web]Request 實現轉發和 MVC 設計模式
寫入 頁面 str quest 表示 請求轉發 但是 write att String data = "aaaaa"; request.setAttribute("data",data); // 將數據存在 request request.getRequestDispat
java 遞歸實現平衡二叉樹
bsp get 實現 urn ole lean left current this public class 平衡二叉樹{ public class TreeNode { TreeNode left; TreeNode right;
對一致性Hash算法,Java代碼實現的深入研究
memcach 還原 情況 () 實用 target 強人 最壞情況 一致性hash 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一文中"一致性Hash算法"部分,對於為什麽要使用一致性Hash算法、一致性Has
Java Map 怎樣實現Key 的唯一性?
存儲 new sha iterator int -m pareto center key 大家都知道。在Map和Set不可存在反復元素? 可是對於內部的細節我們並不了解。今天我們就一塊來 探討一下! 1 對於 HashMap HashSet 他們的底層數據結
root用戶登錄郵件提醒
root用戶登錄郵件提醒最後行添加vi /root/.bashrcdateTime=`date +%Y%m%d-%H:%M`echo "root login" |mail -s "$dateTime root login" [email protected]/* */本文出自 “Shell” 博客
java中隊列實現
col 出隊 基本操作 blog 現象 重要 alt else get 隊列的定義: 隊列(Queue)是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表。 (1)允許刪除的一端稱為隊頭(Front)。 (2)允許插入的一端稱為隊尾(Rear)。(3)當隊列中沒