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