使用javax.mail发送邮件
生活随笔
收集整理的這篇文章主要介紹了
使用javax.mail发送邮件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、發郵件流程
- 二、關于郵件協議和端口
- 三、開啟郵件協議和端口
- 3.1. QQ郵箱
- 3.2. 163郵箱
- 四、實戰發送郵件
- 4.1. 引入依賴
- 4.2. 方法重寫
- 4.3. 發送郵件核心類工具類EmailUtils
- 五、QQ郵件發送測試
- 5.1. QQ發送測試
- 5.2. 查看QQ發送郵箱
- 5.3. 查看收件人收件箱
- 六、163郵件發送測試
- 6.1. 163發送測試
- 6.2. 查看163發送郵箱
- 6.3. 查看收件人收件箱
- 七、企業需求實戰
- 7.1. Email工具類
- 7.2. 單元測試
一、發郵件流程
使用javax.mail包中的api發送郵件,大致有5個步驟
- 1、繼承Authenticator類,重寫getPasswordAuthentication方法。用于登錄校驗。
- 2、創建一個Properties對象,用于存放SMTP服務器地址、端口號
- 3、用步驟1和2得到的對象創建一個Session對象,相當于郵箱登錄
- 4、創建一個MimeMessage,設置發件人、收件人、抄送人、主題、內容,添加附件
- 5、Transport發送郵件
二、關于郵件協議和端口
常用的電子協議協議有SMTP、POP3、IMAP4,它們都隸屬于TCP/IP簇,默認狀態下,分別通過TCP端口25、110和143建立連接。
發送郵件基于SMTP協議。下面列出了常用的郵件服務器地址和端口。
sina.com: POP3服務器地址:pop3.sina.com.cn(端口:110) SMTP服務器地址:smtp.sina.com.cn(端口:25) sinaVIP: POP3服務器:pop3.vip.sina.com (端口:110) SMTP服務器:smtp.vip.sina.com (端口:25)sohu.com: POP3服務器地址:pop3.sohu.com(端口:110) SMTP服務器地址:smtp.sohu.com(端口:25)126郵箱: POP3服務器地址:pop.126.com(端口:110) SMTP服務器地址:smtp.126.com(端口:25)139郵箱: POP3服務器地址:POP.139.com(端口:110) SMTP服務器地址:SMTP.139.com(端口:25)163.com: POP3服務器地址:pop.163.com(端口:110) SMTP服務器地址:smtp.163.com(端口:25)QQ郵箱 POP3服務器地址:pop.qq.com(端口:110) SMTP服務器地址:smtp.qq.com (端口:25)QQ企業郵箱 POP3服務器地址:pop.exmail.qq.com (SSL啟用 端口:995) SMTP服務器地址:smtp.exmail.qq.com(SSL啟用 端口:587/465)yahoo.com: POP3服務器地址:pop.mail.yahoo.com SMTP服務器地址:smtp.mail.yahoo.comyahoo.com.cn: POP3服務器地址:pop.mail.yahoo.com.cn(端口:995) SMTP服務器地址:smtp.mail.yahoo.com.cn(端口:587HotMail POP3服務器地址:pop3.live.com (端口:995) SMTP服務器地址:smtp.live.com (端口:587)gmail(google.com) POP3服務器地址:pop.gmail.com(SSL啟用 端口:995) SMTP服務器地址:smtp.gmail.com(SSL啟用 端口:587)263.net: POP3服務器地址:pop3.263.net(端口:110) SMTP服務器地址:smtp.263.net(端口:25)263.net.cn: POP3服務器地址:pop.263.net.cn(端口:110) SMTP服務器地址:smtp.263.net.cn(端口:25)x263.net: POP3服務器地址:pop.x263.net(端口:110) SMTP服務器地址:smtp.x263.net(端口:25)21cn.com: POP3服務器地址:pop.21cn.com(端口:110) SMTP服務器地址:smtp.21cn.com(端口:25)Foxmail: POP3服務器地址:POP.foxmail.com(端口:110) SMTP服務器地址:SMTP.foxmail.com(端口:25)china.com: POP3服務器地址:pop.china.com(端口:110) SMTP服務器地址:smtp.china.com(端口:25)tom.com: POP3服務器地址:pop.tom.com(端口:110) SMTP服務器地址:smtp.tom.com(端口:25)etang.com: POP3服務器地址:pop.etang.com SMTP服務器地址:smtp.etang.com三、開啟郵件協議和端口
3.1. QQ郵箱
3.2. 163郵箱
四、實戰發送郵件
4.1. 引入依賴
<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.9</version><scope>test</scope></dependency>4.2. 方法重寫
繼承Authenticator并重寫getPasswordAuthentication方法
package com.gblfy.mail;import javax.mail.Authenticator; import javax.mail.PasswordAuthentication;public class MyAuthenticator extends Authenticator {String userName = null;String password = null;public MyAuthenticator() {}public MyAuthenticator(String username, String password) {this.userName = username;this.password = password;}protected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(userName, password);} }4.3. 發送郵件核心類工具類EmailUtils
package com.gblfy.mail.util;import com.gblfy.mail.MyAuthenticator;import javax.activation.CommandMap; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.activation.MailcapCommandMap; import javax.mail.*; import javax.mail.internet.*; import java.util.List; import java.util.Properties;/*** 使用javax.mail發送郵件** @author: gblfy* @date 2021-06-22** <p>* 參數列表:* 1.郵件服務器* 2.發件人郵箱* 3.發件人的授權密碼* 4.郵件主題* 5.收件人,多個收件人以半角逗號分隔* 6.抄送,多個抄送以半角逗號分隔* 7.正文,可以用html格式的喲* </p>*/ public class EmailUtils {private String smtpHost; // 郵件服務器地址private String sendUserName; // 發件人的用戶名private String sendUserPass; // 發件人密碼private MimeMessage mimeMsg; // 郵件對象private Multipart mp;// 附件添加的組件private void init() {// 創建一個密碼驗證器MyAuthenticator authenticator = null;authenticator = new MyAuthenticator(sendUserName, sendUserPass);// 實例化Properties對象Properties props = System.getProperties();props.put("mail.smtp.host", smtpHost);props.put("mail.smtp.auth", "true"); // 需要身份驗證props.put("mail.smtp.starttls.enable", "true");// 建立會話Session session = Session.getDefaultInstance(props, authenticator);// 置true可以在控制臺(console)上看到發送郵件的過程session.setDebug(true);// 用session對象來創建并初始化郵件對象mimeMsg = new MimeMessage(session);// 生成附件組件的實例mp = new MimeMultipart();}private EmailUtils(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject,String mailBody, List<String> attachments) {this.smtpHost = smtpHost;this.sendUserName = sendUserName;this.sendUserPass = sendUserPass;init();setFrom(sendUserName);setTo(to);setCC(cc);setBody(mailBody);setSubject(mailSubject);if (attachments != null) {for (String attachment : attachments) {addFileAffix(attachment);}}}/*** 郵件實體** @param smtpHost 郵件服務器地址* @param sendUserName 發件郵件地址* @param sendUserPass 發件郵箱密碼* @param to 收件人,多個郵箱地址以半角逗號分隔* @param cc 抄送,多個郵箱地址以半角逗號分隔* @param mailSubject 郵件主題* @param mailBody 郵件正文* @param attachments 附件路徑* @return*/public static EmailUtils entity(String smtpHost, String sendUserName, String sendUserPass, String to, String cc,String mailSubject, String mailBody, List<String> attachments) {return new EmailUtils(smtpHost, sendUserName, sendUserPass, to, cc, mailSubject, mailBody, attachments);}/*** 設置郵件主題** @param mailSubject* @return*/private boolean setSubject(String mailSubject) {try {mimeMsg.setSubject(mailSubject);} catch (Exception e) {return false;}return true;}/*** 設置郵件內容,并設置其為文本格式或HTML文件格式,編碼方式為UTF-8** @param mailBody* @return*/private boolean setBody(String mailBody) {try {BodyPart bp = new MimeBodyPart();bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>" + mailBody,"text/html;charset=UTF-8");// 在組件上添加郵件文本mp.addBodyPart(bp);} catch (Exception e) {System.err.println("設置郵件正文時發生錯誤!" + e);return false;}return true;}/*** 添加一個附件** @param filename 郵件附件的地址,只能是本機地址而不能是網絡地址,否則拋出異常* @return*/public boolean addFileAffix(String filename) {try {if (filename != null && filename.length() > 0) {BodyPart bp = new MimeBodyPart();FileDataSource fileds = new FileDataSource(filename);bp.setDataHandler(new DataHandler(fileds));bp.setFileName(MimeUtility.encodeText(fileds.getName(), "utf-8", null)); // 解決附件名稱亂碼mp.addBodyPart(bp);// 添加附件}} catch (Exception e) {System.err.println("增加郵件附件:" + filename + "發生錯誤!" + e);return false;}return true;}/*** 設置發件人地址** @param from 發件人地址* @return*/private boolean setFrom(String from) {try {mimeMsg.setFrom(new InternetAddress(from));} catch (Exception e) {return false;}return true;}/*** 設置收件人地址** @param to 收件人的地址* @return*/private boolean setTo(String to) {if (to == null)return false;try {mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));} catch (Exception e) {return false;}return true;}/*** 設置抄送** @param cc* @return*/private boolean setCC(String cc) {if (cc == null) {return false;}try {mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));} catch (Exception e) {return false;}return true;}/*** no object DCH for MIME type multipart/mixed報錯解決*/private void solveError() {MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed; x-java-fallback-entry=true");mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");CommandMap.setDefaultCommandMap(mc);Thread.currentThread().setContextClassLoader(EmailUtils.class.getClassLoader());}/*** 發送郵件** @return*/public boolean send() throws Exception {mimeMsg.setContent(mp);mimeMsg.saveChanges();System.out.println("正在發送郵件....");solveError();Transport.send(mimeMsg);System.out.println("發送郵件成功!");return true;} }五、QQ郵件發送測試
5.1. QQ發送測試
package com.gblfy.mail;import com.gblfy.mail.util.EmailUtils; import org.junit.Test;import java.util.Arrays; import java.util.List;public class MailApplicationTests {@Testpublic void sendEmail() throws Exception {//QQ郵箱測試String userName = "754263923@qq.com"; // 發件人郵箱String password = "wzxsscqpvrikbbfa"; // 發件人密碼,其實不一定是郵箱的登錄密碼,對于QQ郵箱來說是SMTP服務的授權文本String smtpHost = "smtp.qq.com"; // 郵件服務器//163郵箱測試// String userName = "gblfy02@163.com"; // 發件人郵箱// String password = "TBFJUSKCUOPEYOYU"; // 發件人密碼,其實不一定是郵箱的登錄密碼,對于QQ郵箱來說是SMTP服務的授權文本// String smtpHost = "smtp.163.com"; // 郵件服務器String to = "guo_bin@sinosoft.com.cn"; // 收件人,多個收件人以半角逗號分隔String cc = "songzihao@sinosoft.com.cn"; // 抄送,多個抄送以半角逗號分隔String subject = "這是郵件的主題 163"; // 主題String body = "這是郵件的正文163"; // 正文,可以用html格式的喲List<String> attachments = Arrays.asList("D:\\安裝包\\【繁星課堂】DataX3.0離線同步課件.pdf", "D:\\安裝包\\權限控制優化需求.docx"); // 附件的路徑,多個附件也不怕EmailUtils emailUtils = EmailUtils.entity(smtpHost, userName, password, to, cc, subject, body, attachments);emailUtils.send(); // 發送!}}5.2. 查看QQ發送郵箱
5.3. 查看收件人收件箱
正常發送,正常接收!
六、163郵件發送測試
6.1. 163發送測試
package com.gblfy.mail;import com.gblfy.mail.util.EmailUtils; import org.junit.Test;import java.util.Arrays; import java.util.List;public class MailApplicationTests {@Testpublic void sendEmail() throws Exception {//QQ郵箱測試// String userName = "754263923@qq.com"; // 發件人郵箱// String password = "wzxsscqpvrikbbfa"; // 發件人密碼,其實不一定是郵箱的登錄密碼,對于QQ郵箱來說是SMTP服務的授權文本// String smtpHost = "smtp.qq.com"; // 郵件服務器//163郵箱測試String userName = "gblfy02@163.com"; // 發件人郵箱String password = "TBFJUSKCUOPEYOYU"; // 發件人密碼,其實不一定是郵箱的登錄密碼,對于QQ郵箱來說是SMTP服務的授權文本String smtpHost = "smtp.163.com"; // 郵件服務器String to = "guo_bin@xxx.com.cn"; // 收件人,多個收件人以半角逗號分隔String cc = "songzihao@xxx.com.cn"; // 抄送,多個抄送以半角逗號分隔String subject = "這是郵件的主題 163"; // 主題String body = "這是郵件的正文163"; // 正文,可以用html格式的喲List<String> attachments = Arrays.asList("D:\\安裝包\\【繁星課堂】DataX3.0離線同步課件.pdf", "D:\\安裝包\\權限控制優化需求.docx"); // 附件的路徑,多個附件也不怕EmailUtils emailUtils = EmailUtils.entity(smtpHost, userName, password, to, cc, subject, body, attachments);emailUtils.send(); // 發送!}}6.2. 查看163發送郵箱
6.3. 查看收件人收件箱
七、企業需求實戰
7.1. Email工具類
package com.gblfy.email.util;import com.gblfy.email.config.EmailAuthenticatorConfig;import javax.activation.CommandMap; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.activation.MailcapCommandMap; import javax.mail.*; import javax.mail.internet.*; import java.util.List; import java.util.Properties;/*** 使用javax.mail發送郵件** @author: gblfy* @date 2021-10-15** <p>* 參數列表:* 1.郵件服務器* 2.發件人郵箱* 3.發件人的授權密碼* 4.郵件主題* 5.收件人,多個收件人以半角逗號分隔* 6.抄送,多個抄送以半角逗號分隔* 7.正文,可以用html格式的喲* </p>*/ public class EmailUtils {private String smtpHost; // 郵件服務器地址private String sendUserName; // 發件人的用戶名private String sendUserPass; // 發件人密碼private MimeMessage mimeMsg; // 郵件對象private Multipart mp;// 附件添加的組件private void init() {// 創建一個密碼驗證器EmailAuthenticatorConfig authenticator = null;authenticator = new EmailAuthenticatorConfig(sendUserName, sendUserPass);// 實例化Properties對象Properties props = System.getProperties();props.put("mail.smtp.host", smtpHost);props.put("mail.smtp.auth", "true"); // 需要身份驗證//此屬性待測試先注釋// props.put("mail.smtp.starttls.enable", "true");props.put("mail.transport.protocol", "smtp");// 建立會話Session session = Session.getDefaultInstance(props, authenticator);// 置true可以在控制臺(console)上看到發送郵件的過程session.setDebug(true);// 用session對象來創建并初始化郵件對象mimeMsg = new MimeMessage(session);// 生成附件組件的實例mp = new MimeMultipart();}private EmailUtils(String smtpHost, String sendUserName, String sendUserPass, String to, String cc, String mailSubject,String mailBody, List<String> attachments) {this.smtpHost = smtpHost;this.sendUserName = sendUserName;this.sendUserPass = sendUserPass;init();setFrom(sendUserName);setTo(to);setCC(cc);setBody(mailBody);setSubject(mailSubject);if (attachments != null) {for (String attachment : attachments) {addFileAffix(attachment);}}}/*** 郵件實體** @param smtpHost 郵件服務器地址* @param sendUserName 發件郵件地址* @param sendUserPass 發件郵箱密碼* @param to 收件人,多個郵箱地址以半角逗號分隔* @param cc 抄送,多個郵箱地址以半角逗號分隔* @param mailSubject 郵件主題* @param mailBody 郵件正文* @param attachments 附件路徑* @return*/public static EmailUtils entity(String smtpHost, String sendUserName, String sendUserPass, String to, String cc,String mailSubject, String mailBody, List<String> attachments) {return new EmailUtils(smtpHost, sendUserName, sendUserPass, to, cc, mailSubject, mailBody, attachments);}/*** 設置郵件主題** @param mailSubject* @return*/private boolean setSubject(String mailSubject) {try {mimeMsg.setSubject(mailSubject);} catch (Exception e) {return false;}return true;}/*** 設置郵件內容,并設置其為文本格式或HTML文件格式,編碼方式為UTF-8** @param mailBody* @return*/private boolean setBody(String mailBody) {try {BodyPart bp = new MimeBodyPart();bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>" + mailBody,"text/html;charset=UTF-8");// 在組件上添加郵件文本mp.addBodyPart(bp);} catch (Exception e) {System.err.println("設置郵件正文時發生錯誤!" + e);return false;}return true;}/*** 添加一個附件** @param filename 郵件附件的地址,只能是本機地址而不能是網絡地址,否則拋出異常* @return*/public boolean addFileAffix(String filename) {try {if (filename != null && filename.length() > 0) {BodyPart bp = new MimeBodyPart();FileDataSource fileds = new FileDataSource(filename);bp.setDataHandler(new DataHandler(fileds));bp.setFileName(MimeUtility.encodeText(fileds.getName(), "utf-8", null)); // 解決附件名稱亂碼mp.addBodyPart(bp);// 添加附件}} catch (Exception e) {System.err.println("增加郵件附件:" + filename + "發生錯誤!" + e);return false;}return true;}/*** 設置發件人地址** @param from 發件人地址* @return*/private boolean setFrom(String from) {try {mimeMsg.setFrom(new InternetAddress(from));} catch (Exception e) {return false;}return true;}/*** 設置收件人地址** @param to 收件人的地址* @return*/private boolean setTo(String to) {if (to == null)return false;try {mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));} catch (Exception e) {return false;}return true;}/*** 設置抄送** @param cc* @return*/private boolean setCC(String cc) {if (cc == null) {return false;}try {mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(cc));} catch (Exception e) {return false;}return true;}/*** no object DCH for MIME type multipart/mixed報錯解決*/private void solveError() {MailcapCommandMap mc = (MailcapCommandMap) CommandMap.getDefaultCommandMap();mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed; x-java-fallback-entry=true");mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");CommandMap.setDefaultCommandMap(mc);Thread.currentThread().setContextClassLoader(EmailUtils.class.getClassLoader());}/*** 發送郵件** @return*/public String send() throws Exception {mimeMsg.setContent(mp);mimeMsg.saveChanges();System.out.println("正在發送郵件....");solveError();try {Transport.send(mimeMsg);return "發送郵件成功!";} catch (MessagingException e) {e.printStackTrace();return "發送郵件異常!";}}/*** 對賬結果通知郵件模板** @param named 稱呼* @param totalNum 對賬批次總個數* @param succBatchNum 對賬成功批次個數* @param checkInformSucc 對賬成功批次* @param checkInformMiddle 對賬中批次* @param checkInformDiff 對賬差異批次* @param smtpHost 郵件代理服務器IP* @param sendUserName 發送人郵箱* @param sendUserPass 發送人郵箱秘鑰* @param to 收件人郵箱* @param cc 抄送人郵箱* @param attachments 附件*/public static String checkInformEmailNotice(String named, int totalNum, int succBatchNum, String checkInformSucc,String checkInformMiddle, String checkInformDiff, String smtpHost,String sendUserName, String sendUserPass, String to, String cc,List<String> attachments) throws Exception {String subject = "【裝載結果通知】" + DateDeal.getYesterday() + " 共報送" + totalNum + "個批次,對賬成功" + succBatchNum + "個批次"; // 主題String body = "<pre>\n" +named + ",您好!\n" +"\n" +" 對賬狀態信息:\n" +" 對賬成功批次:" + checkInformSucc + "。\n" +" 對賬中批次 :" + checkInformMiddle + ",請您及時處理。\n" +" 對賬存在差異批次:" + checkInformDiff + ",請您及時處理。\n" +"</pre>";EmailUtils emailUtils = EmailUtils.entity(smtpHost, sendUserName, sendUserPass, to, cc, subject, body, attachments);return emailUtils.send();// 發送!}/*** @param named 稱呼* @param totalLoadNum 裝載總批次個數* @param loadAllSuccNum 裝載全部成功批次個數* @param loadMiddle 裝載中批次* @param LoadAllSucc 裝載全部成功批次* @param partLoadSucc 裝載部分成功批次* @param withoutLoad 尚未裝載批次* @param smtpHost 郵件代理服務器IP* @param sendUserName 發送人郵箱* @param sendUserPass 發送人郵箱秘鑰* @param to 收件人郵箱* @param cc 抄送人郵箱* @param attachments 附件* @return* @throws Exception*/public static String loadEmailNotice(String named, int totalLoadNum, int loadAllSuccNum, String loadMiddle, String LoadAllSucc,String partLoadSucc, String withoutLoad, String smtpHost,String sendUserName, String sendUserPass, String to, String cc,List<String> attachments) throws Exception {String subject = "【數據裝載結果通知】" + DateDeal.getToday() + " 共報送" + totalLoadNum + "個批次,裝載全部成功" + loadAllSuccNum + "個批次"; // 主題String body = "<pre>\n" +named + ",您好!\n" +"\n" +" 數據裝載狀態信息:\n" +" 裝載中批次:" + loadMiddle + "。\n" +" 裝載全部成功批次:" + LoadAllSucc + "。\n" +" 裝載部分成功批次 :" + partLoadSucc + "\n" +" 尚未裝載批次:" + withoutLoad + "。\n" +"</pre>";EmailUtils emailUtils = EmailUtils.entity(smtpHost, sendUserName, sendUserPass, to, cc, subject, body, attachments);return emailUtils.send();// 發送!} }7.2. 單元測試
package com.gblfy.email.util;import com.gblfy.email.modular.check.dto.Emailsubject; import org.junit.Test;public class EmailTest {@Testpublic void checkInformEmailNoticeTest() throws Exception {//測試模擬數據Emailsubject emailsubject = new Emailsubject();emailsubject.setSendEmail("xxx@xxx.com");emailsubject.setProxyserverHost("192.168.xxx.xxx");emailsubject.setSendEmailPwd("Gblfy.com");emailsubject.setReceiveEmail("xxx@xxx.com");emailsubject.setCcEmail("xxx@xxx.com,xxx@xxx.com,xxx@xxx.com,xxx@xxx.com");String msg = EmailUtils.checkInformEmailNotice("運維人員", 5, 5, "001,002","0002", "004,00005 ", emailsubject.getProxyserverHost(),emailsubject.getSendEmail(), emailsubject.getSendEmailPwd(), emailsubject.getReceiveEmail(), emailsubject.getCcEmail(), null);System.out.println("msg" + msg);}@Testpublic void loadEmailNoticeTest() throws Exception {//測試模擬數據Emailsubject emailsubject = new Emailsubject();emailsubject.setSendEmail("xxx@xxx.com");emailsubject.setProxyserverHost("192.168.xxx.xxx");emailsubject.setSendEmailPwd("Gblfy.com");emailsubject.setReceiveEmail("xxx@xxx.com");emailsubject.setCcEmail("xxx@xxx.com,xxx@xxx.com,xxx@xxx.com,xxx@xxx.com");String msg = EmailUtils.loadEmailNotice("運維人員", 5, 5, "001,002","003", "004,0005 ", "008", emailsubject.getProxyserverHost(),emailsubject.getSendEmail(), emailsubject.getSendEmailPwd(), emailsubject.getReceiveEmail(), emailsubject.getCcEmail(), null);System.out.println("msg" + msg);} }總結
以上是生活随笔為你收集整理的使用javax.mail发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mybatis-plus批量插入、批量修
- 下一篇: Java 使用 zip4j 进行基本的压