以前覺得JavaMail是一種很高大上玩意,所以就在網上找了關于JavaMail的知識,其實也沒想像中那么高大上,我就只學習了發送郵件的部分,那么我就來貼上自己寫的代碼啦,具體實現代碼有詳細的解釋了
第一個是發送普通郵件
// 發送普通郵件 public static void sendTextmail() throws MessagingException { // 第一步.獲取session(注:這個是javax.mail下的類) /* * public static Session getInstance(java.util.PRoperties props, Authenticator authenticator) * * props需要指定兩個鍵值,一個是指定服務器主機名,另一個是指定是否需要認證!這里設置時必須驗證true * authenticator是一個接口,表示認證器,就是客戶端的身份登陸。我們需要自己來實現這個接口,實現這個接口需要使用賬戶和密碼 */ Properties props = new Properties(); props.setProperty("mail.host", "smtp.sohu.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { @Override protected PassWordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("lishun1005", "leason841553484"); } }; Session session = Session.getInstance(props, auth); // 第二步:創建MimeMessage對象 MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("lishun1005@sohu.com"));// 設置發信人 msg.setRec第二個是帶附件的發送
// 發帶附件的郵件 public static void sendTextAndFilemail() throws MessagingException, IOException { Properties props = new Properties(); props.setProperty("mail.host", "smtp.sohu.com"); props.setProperty("mail.smtp.auth", "true"); Authenticator auth = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("lishun1005", "leason841553484"); } }; Session session = Session.getInstance(props, auth); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress("lishun1005@sohu.com"));// 設置發信人 msg.setRecipients(RecipientType.TO, "lishun1005@sohu.com"); msg.setSubject("發送給王尼瑪"); /* * 當發送包含附件的郵件時,郵件體就為多部件形式! 1. 創建一個多部件的部件內容!MimeMultipart * MimeMultipart就是一個集合,用來裝載多個主體部件! 2. 我們需要創建兩個主體部件,一個是文本內容的,另一個是附件的。 * 主體部件叫MimeBodyPart 3. 把MimeMultipart設置給MimeMessage的內容!這段內容是在網上找到的學習資料,自己感興趣自己就再理解一番 */ MimeMultipart list = new MimeMultipart();// 創建多部分內容 // 創建MimeBodyPart MimeBodyPart part1 = new MimeBodyPart(); // 設置文本的內容 part1.setContent("帶附件的郵件", "text/html;charset=utf-8"); // 把文本添加到集合中 list.addBodyPart(part1); // 創建MimeBodyPart MimeBodyPart part2 = new MimeBodyPart(); part2.attachFile(new File("D:/王尼瑪.jpg"));// 設置附件的內容 part2.setFileName(MimeUtility.encodeText("王尼瑪.jpg"));// 設置顯示的文件名稱,其中encodeText用來處理中文亂碼問題 list.addBodyPart(part2); msg.setContent(list);// 把它設置給郵件作為郵件的內容。 // 發送郵件 Transport.send(msg); }
新聞熱點
疑難解答