在實際專案中,如果傳送郵件,是不可能從資料庫中查出一條然後發一條的,因為資料量太龐大了,系統會崩潰,慣用的邏輯就是想把需要傳送的全部訊息全部查詢出來,放到乙個list中,這個屬於一條,比如說我需要給使用者傳送乙個郵件,但是這個郵件的內容可能涉及到多個模組的資料,所以我們這個時候可以把那些內容都寫死(相當於做乙個模板,然後在裡面填充資料就可以),模組之間誰呼叫誰的,最後用list把本次郵件全給弄起來,然後用乙個map存起來,map的id可以是郵箱號,value為這些拼裝好的資料,把這些封裝成乙個類,誰需要呼叫誰用,豈不美哉?呼叫郵件介面只需要三個引數(乙個是郵箱號,乙個是郵件內容,乙個是鏈結資料庫的金鑰(該金鑰在乙個專案中是固定的,可以用列舉在配置檔案中做成乙個常量,直接引用就可以))然後傳送就ok了,
還有一點就是寫完**如何在不上線的情況下測試,考慮到郵箱傳送都是定時傳送的,所以需要在原來**上的定時器上做手腳,定時任務一般解除安裝service中,這個時候只需要把原來的定時任務取消掉 然後加上乙個@scheduled(fixedrate = 5000),意思是每五秒執行一次,然後debug執行整個專案(注意:這裡不能在裡面加上main方法,因為這個定時任務可能需要用到其他介面的資料,而main方法只是從當前的方法的頭部開始執行,如果這個方法不是最開始的方法,那麼就會報空指標錯誤,親自踩過的坑),打斷點看引數就可以了。
/***@description:郵件**邏輯
*@author: wuyongfei
*@date: 2018/9/07 12:05
*/@slf4j
@component
public class mailtask ")
private string receiver;
@value("$")
private string envir;
@scheduled(cron = "0 30 08 ? * mon-sat")
public void automailtask()
log.info("automailtask!!!");
//構造乙個方法類
mailentity mailentity = new mailentity();
mailentity.setmailtype(mailtypeenum.everyday_eight.name());
mailentity.setsubject("每日資料");
mailentity.setcontent("每日資料");
listreceiverlist = arrays.aslist(receiver.split(","));
mailentity.setreceivers(receiverlist);
attachmententity entity6 = new attachmententity();
entity6.setsql(automailsql.everydayprofit.replaceall("\\n", " "));
entity6.setfilename("逐日盈虧");
entity6.settemplate("jdbctemplate");
attachmententity entity1 = new attachmententity();
entity1.setsql(automailsql.ordersql);
entity1.setfilename("平台客戶訂單");
entity1.settemplate("jdbctemplate");
attachmententity entity2 = new attachmententity();
entity2.setsql(automailsql.marginsql);
entity2.setfilename("保證金");
entity2.settemplate("jdbctemplate");
attachmententity entity3 = new attachmententity();
entity3.setsql(automailsql.rechargesql);
entity3.setfilename("客戶充值");
entity3.settemplate("jdbctemplate");
attachmententity entity4 = new attachmententity();
entity4.setsql(automailsql.pingcang);
entity4.setfilename("客戶平倉");
entity4.settemplate("jdbctemplate");
attachmententity entity5 = new attachmententity();
entity5.setsql(automailsql.withdraw);
entity5.setfilename("客戶提現");
entity5.settemplate("jdbctemplate");
//放入list中
listattachmententitylist = new arraylist<>();
attachmententitylist.add(entity6);
attachmententitylist.add(entity1);
attachmententitylist.add(entity2);
attachmententitylist.add(entity3);
attachmententitylist.add(entity4);
attachmententitylist.add(entity5);
//把list放入目標類中//這個目標類中有需要的郵箱號和郵件內容
mailentity.setattach(attachmententitylist);//獲得資料庫連線的引數
automailservice.send(mailentity, messagetypeenum.mime_message);//呼叫介面進行傳送
}
傳送郵件,支援群發,非常好用
傳送郵件 public class smtpmanager else mail.to.add newmailaddress address,displayname 設定郵件的抄送收件人 這個就簡單多了,如果不想快點下崗重要檔案還是cc乙份給領導比較好 mailaddress manage hotma...
C 傳送郵件小程式(支援群發,附件)
在這裡,主要使用了system.web.mail命名空間下的類,具體 如下 先新建win專案,再複製 using system using system.drawing using system.collections using system.componentmodel using system...
PHPmailer 郵件群發
phpmailer郵件類傳送郵件範例及 指定多個收件人 xjjtjt.cn phpmailer是乙個用於傳送電子郵件的php函式包。它提供的功能包括 支援多種郵件編碼包括 8bit,base64,binary和quoted printable 支援smtp驗證 支援冗餘smtp伺服器 支援帶附件的郵...