java Mail如何發送郵件
阿新 • • 發佈:2018-06-25
true per 郵件附件 QQ host 2.3 session 驗證 address
1.應用場景:在系統需要發送與用戶相關的消息時,而用戶不在線,可以采取發送郵件的方式,使用戶了解最新的系統情況 或者發送驗證碼等驗證場景
2.實驗環境 主要使用mail.jar和activation.jar兩個包
3.使用一份簡單的郵件
public void sendMail() throws AddressException, MessagingException{ /* * 1.得到session */ Properties properties=new Properties(); properties.setProperty("mail.host", "smtp.163.com"); properties.setProperty("mail.smtp.auth", "true"); //賬戶信息測試 Authenticator auth =new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhou_s1", "xxx");//這裏是賬戶名和密碼 } }; Session session =Session.getInstance(properties,auth); /* * 2.創建消息message */ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]"));//設置發件人 message.setRecipients(RecipientType.TO, "[email protected]");//設置收件人 //message.setRecipients(RecipientType.CC, "[email protected]");//設置抄送 //message.setRecipients(RecipientType.BCC, "[email protected]");//暗送給誰 message.setSubject("這一份來自周松測試的垃圾郵件--javamail"); message.setContent("test test test !!!","text/html;charset=utf-8"); /* * 3.發送 */ Transport.send(message); }
4.一份帶有附件的郵件
public void sendMailMore() throws AddressException, MessagingException, IOException{ /* * 1.得到session */ Properties properties=new Properties(); properties.setProperty("mail.host", "smtp.163.com"); properties.setProperty("mail.smtp.auth", "true"); //賬戶信息測試 Authenticator auth =new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("zhou_s1", "xxx"); } }; Session session =Session.getInstance(properties,auth); /* * 2.創建消息message */ MimeMessage message=new MimeMessage(session); message.setFrom(new InternetAddress("[email protected]"));//設置發件人 message.setRecipients(RecipientType.TO, "[email protected]");//設置收件人 message.setSubject("這是一份含有附件的郵件---測試使用--javamail"); /******************************************************/ /* * 附件的主體流程 附件含有多個組成部分 簡稱多部件 * */ MimeMultipart list =new MimeMultipart(); //1.郵件主要內容 MimeBodyPart MimeBodyPart part1 =new MimeBodyPart(); //1.1.內容 part1.setContent("一份含有附件的測試郵件", "text/html;charset=utf-8"); //1.2將主體添加到郵件中去 list.addBodyPart(part1); //2.1.郵件附件裏面的內容 MimeBodyPart part2 =new MimeBodyPart(); //2.2.附件 File file =new File("G:/JAVAtest/Merge.mp3"); part2.attachFile(file); part2.setFileName(MimeUtility.encodeText("Merge.mp3")); //2.3將主體添加到郵件中去 list.addBodyPart(part2); //3.最後將多部件添加到消息中去 message.setContent(list); //發送 Transport.send(message); }
測試完畢!
java Mail如何發送郵件