標籤:java java web 定時任務 定時發送郵件
本來是以做資料採礦的目的進去哪網的,結構卻成了系統開發。。。
不過還是比較認真的做了三個月,老師很認同我的工作態度和成果。。。
實習馬上就要結束了,總結一下幾點之前沒有注意過的變成習慣和問題,分享給大家。
同時打個廣告:去哪網內審部招JavaWeb開發實習生,時間非常自由,每周一天、周六周日甚至都可以,時間充裕的小夥伴給我留言啊,掙個零花錢,還能長點經驗。。。。(保研的、想工作的大四狗最合適不過了。。。)
接上一篇:http://blog.csdn.net/mmc2015/article/details/47685369
需要的包:
activation.jar:http://download.csdn.net/detail/mmc2015/9009847
mail.jar:http://download.csdn.net/detail/mmc2015/9009839
補充串連資料庫的包:mysql-connector-java-5.1.27-bin.jar:
不介紹過多知識點,直接上代代碼:
public static void sendMail() throws Exception { Properties prop = new Properties(); prop.setProperty("mail.host", "smtp.qunar.com"); prop.setProperty("mail.transport.protocol", "smtp"); prop.setProperty("mail.smtp.auth", "true"); //使用JavaMail發送郵件的5個步驟 //1、建立session Session session = Session.getInstance(prop); //開啟Session的debug模式,這樣就可以查看到程式發送Email的運行狀態 session.setDebug(true); //2、通過session得到transport對象 Transport ts = session.getTransport(); //3、使用郵箱的使用者名稱和密碼連上郵件伺服器,發送郵件時,寄件者需要提交郵箱的使用者名稱和密碼給smtp伺服器,使用者名稱和密碼都通過驗證之後才能夠正常發送郵件給收件者。 ts.connect("smtp.qunar.com", "你的郵箱帳號", "你的密碼"); //4、建立郵件(只包含文本) //Message message = createSimpleMail(session); //4、建立郵件(帶附件) Message message = createAttachMail(session); //5、發送郵件 ts.sendMessage(message, message.getAllRecipients()); ts.close();}
//建立一封只包含文本的郵件 public static MimeMessage createSimpleMail(Session session) throws Exception { //建立郵件對象 MimeMessage message = new MimeMessage(session); //指明郵件的寄件者 message.setFrom(new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">你的郵箱帳號</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span> //指明郵件的收件者,現在寄件者和收件者是一樣的,那就是自己給自己發 message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件者郵箱帳號@qunar.com")); //郵件的標題 message.setSubject("只包含文本的簡單郵件"); //郵件的常值內容,為了避免郵件內文中文亂碼問題,需要使用charset=UTF-8指明字元編碼 message.setContent("Hello Mail!", "text/html;charset=UTF-8"); //返回建立好的郵件對象 System.out.println(message); return message; }
//建立一封包含附件的郵件 public static MimeMessage createAttachMail(Session session) throws Exception { //建立郵件對象 MimeMessage message = new MimeMessage(session); //指明郵件的寄件者 message.setFrom(new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">你的郵箱帳號</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span> //指明郵件的收件者,現在寄件者和收件者是一樣的,那就是自己給自己發 message.setRecipient(Message.RecipientType.TO, new InternetAddress("<span style="font-family: Arial, Helvetica, sans-serif;">收件者郵箱帳號</span><span style="font-family: Arial, Helvetica, sans-serif;">@qunar.com"));</span> //郵件的標題 message.setSubject("包含附件的郵件"); //建立郵件內文,為了避免郵件內文中文亂碼問題,需要使用charset=UTF-8指明字元編碼 MimeBodyPart text = new MimeBodyPart(); String mailText = "使用JavaMail建立的帶附件的郵件\n"; mailText = "定時任務,時間為:12:00:00\n"; text.setContent(mailText, "text/html;charset=UTF-8"); //建立郵件附件 MimeBodyPart attach = new MimeBodyPart(); //DataHandler dh = new DataHandler(new FileDataSource("C:\\Users\\userName\\Desktop\\test.xlsx")); String nowDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date()); String serverRealRootPath = GetServerRealPathUtil.getRootPath(); String fileName = <strong>serverRealRootPath</strong>+<strong>File.separator</strong>+nowDate+".xlsx";//這個函數還記得吧。。。。。 DataHandler dh = new DataHandler(new FileDataSource(fileName)); attach.setDataHandler(dh); attach.setFileName(dh.getName()); //建立容器描述資料關係(附件和本文內容本質是一種容器的內含項目關聯性,描述好了就ok) MimeMultipart mp = new MimeMultipart(); mp.addBodyPart(text); mp.addBodyPart(attach); mp.setSubType("mixed"); message.setContent(mp); message.saveChanges(); //返回建立好的郵件對象 System.out.println(message); return message; }
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
去哪網實習總結:定時發送郵件(JavaWeb)