發送郵件的實現
需要事先引入以下幾個架包,最重要的架包是jodd-3.7這個
以上架包下載地址:http://pan.baidu.com/s/1kVs7Tyv 提取密碼:h22x
新建一個Util類,其中emails.txt 是用來動態配置需要發送郵件的發送對象
package quartz; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; /** * * @author DONG */ public class Util{ public static final String format = "HH:mm"; public static final SimpleDateFormat sdf = new SimpleDateFormat(format); public static String content = "以下電樁斷網已超過1小時" +"【"+ sdf.format(new Date())+"】";//發送郵件內容 public static Date lastSend = null; public static List getEmailList(){ return getList("emails.txt"); } public static List getList(String fileName){ try{ InputStream is = Util.class.getResourceAsStream(fileName); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); List list = new ArrayList(); String line = ""; while( (line = br.readLine()) != null ){ if(!"".equals(line.trim())) list.add(line); } br.close(); isr.close(); is.close(); return list; }catch(Exception e){ e.printStackTrace(); } return null; } }
以上代碼可直接copy復用
接下來就是發送郵件了
public void run() { List<String> emails = Util.getEmailList();//獲取郵件發送對象的集合 if (emails.isEmpty()) { System.out.println("no email receiver"); return; } String from = "********@sina.com";//用戶名,登錄郵箱的賬號 String psw = "**********";//密碼 String[] to = emails.toArray(new String[0]); Email email = Email.create() .from(from).to(to) .subject("電樁斷網超時提醒")//郵件主題 .addText(Util.content);//郵件內容 SmtpServer smtpServer = SmtpServer.create("smtp.sina.com")//調用新浪郵箱服務器 .authenticateWith(from, psw); SendMailSession session = smtpServer.createSession(); session.open(); session.sendMail(email);//執行發送 session.close(); System.out.println("--email send success. receivers: " + Arrays.deepToString(emails.toArray())); }
在需要發送郵件的地方調用run方法即可。以上就是一個超簡易的發送郵件示例,親測有效
下一篇,將補充如何自定義添加郵件內容