首頁>技術>

分享springboot整合的郵件傳送案例,需要的小夥伴可以直接複製下面的三個類到自己的專案中,直接執行案例即可。

1、建立郵件認證類
package com.qingfeng.util.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);       }   }   
2、傳送郵件需要使用的基本資訊
package com.qingfeng.util.mail;/**    * *傳送郵件需要使用的基本資訊  * *   */    import java.util.Properties;public class MailSenderInfo {        // 傳送郵件的伺服器的IP和埠        private String mailServerHost;        private String mailServerPort = "25";        // 郵件傳送者的地址        private String fromAddress;        // 郵件接收者的地址        private String toAddress;        // 登陸郵件傳送伺服器的使用者名稱和密碼        private String userName;        private String password;        // 是否需要身份驗證        private boolean validate = false;        // 郵件主題        private String subject;        // 郵件的文字內容        private String content;        // 郵件附件的檔名        private String[] attachFileNames;          /**         * 獲得郵件會話屬性         */        public Properties getProperties(){          Properties p = new Properties();          p.put("mail.smtp.host", this.mailServerHost);          p.put("mail.smtp.port", this.mailServerPort);          p.put("mail.smtp.auth", validate ? "true" : "false");          return p;        }        public String getMailServerHost() {          return mailServerHost;        }        public void setMailServerHost(String mailServerHost) {          this.mailServerHost = mailServerHost;        }       public String getMailServerPort() {          return mailServerPort;        }       public void setMailServerPort(String mailServerPort) {          this.mailServerPort = mailServerPort;        }       public boolean isValidate() {          return validate;        }       public void setValidate(boolean validate) {          this.validate = validate;        }       public String[] getAttachFileNames() {          return attachFileNames;        }       public void setAttachFileNames(String[] fileNames) {          this.attachFileNames = fileNames;        }       public String getFromAddress() {          return fromAddress;        }        public void setFromAddress(String fromAddress) {          this.fromAddress = fromAddress;        }       public String getPassword() {          return password;        }       public void setPassword(String password) {          this.password = password;        }       public String getToAddress() {          return toAddress;        }        public void setToAddress(String toAddress) {          this.toAddress = toAddress;        }        public String getUserName() {          return userName;        }       public void setUserName(String userName) {          this.userName = userName;        }       public String getSubject() {          return subject;        }       public void setSubject(String subject) {          this.subject = subject;        }       public String getContent() {          return content;        }       public void setContent(String textContent) {          this.content = textContent;        }    }   

3、傳送郵件實現類

package com.qingfeng.util.mail;/**    * 簡單郵件(不帶附件的郵件)傳送器    */import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeBodyPart;import javax.mail.internet.MimeMessage;import javax.mail.internet.MimeMultipart;import java.util.Date;import java.util.Properties;public class SimpleMailSender {/**     * 以文字格式傳送郵件     * @param mailInfo 待發送的郵件的資訊     */        public boolean sendTextMail(MailSenderInfo mailInfo) {      // 判斷是否需要身份認證          MyAuthenticator authenticator = null;          Properties pro = mailInfo.getProperties();         if (mailInfo.isValidate()) {          // 如果需要身份認證,則建立一個密碼驗證器            authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());          }         // 根據郵件會話屬性和密碼驗證器構造一個傳送郵件的session          Session sendMailSession = Session.getDefaultInstance(pro,authenticator);       try {    	      // 根據session建立一個郵件訊息    	      Message mailMessage = new MimeMessage(sendMailSession);    	      // 建立郵件傳送者地址    	      Address from = new InternetAddress(mailInfo.getFromAddress());    	      // 設定郵件訊息的傳送者    	      mailMessage.setFrom(from);    	      // 建立郵件的接收者地址,並設定到郵件訊息中    	      Address to = new InternetAddress(mailInfo.getToAddress());    	      mailMessage.setRecipient(Message.RecipientType.TO,to);    	      // 設定郵件訊息的主題    	      mailMessage.setSubject(mailInfo.getSubject());    	      // 設定郵件訊息傳送的時間    	      mailMessage.setSentDate(new Date());    	      // 設定郵件訊息的主要內容    	      String mailContent = mailInfo.getContent();    	      mailMessage.setText(mailContent);    	      // 傳送郵件    	      Transport.send(mailMessage); 	      return true;      } catch (MessagingException ex) {              ex.printStackTrace();          }          return false;        }               /**         * 以HTML格式傳送郵件         * @param mailInfo 待發送的郵件資訊         */        public static boolean sendHtmlMail(MailSenderInfo mailInfo){          // 判斷是否需要身份認證          MyAuthenticator authenticator = null;         Properties pro = mailInfo.getProperties();         //如果需要身份認證,則建立一個密碼驗證器           if (mailInfo.isValidate()) {            authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());         }          // 根據郵件會話屬性和密碼驗證器構造一個傳送郵件的session          Session sendMailSession = Session.getDefaultInstance(pro,authenticator);          try {          // 根據session建立一個郵件訊息          Message mailMessage = new MimeMessage(sendMailSession);          // 建立郵件傳送者地址          Address from = new InternetAddress(mailInfo.getFromAddress());          // 設定郵件訊息的傳送者          mailMessage.setFrom(from);          // 建立郵件的接收者地址,並設定到郵件訊息中          Address to = new InternetAddress(mailInfo.getToAddress());          // Message.RecipientType.TO屬性表示接收者的型別為TO          mailMessage.setRecipient(Message.RecipientType.TO,to);          // 設定郵件訊息的主題          mailMessage.setSubject(mailInfo.getSubject());          // 設定郵件訊息傳送的時間          mailMessage.setSentDate(new Date());          // MiniMultipart類是一個容器類,包含MimeBodyPart型別的物件          Multipart mainPart = new MimeMultipart();          // 建立一個包含HTML內容的MimeBodyPart          BodyPart html = new MimeBodyPart();          // 設定HTML內容          html.setContent(mailInfo.getContent(), "text/html; charset=utf-8");          mainPart.addBodyPart(html);          // 將MiniMultipart物件設定為郵件內容          mailMessage.setContent(mainPart);          // 傳送郵件          Transport.send(mailMessage);          return true;          } catch (MessagingException ex) {              ex.printStackTrace();          }          return false;        }     /*      	public static void main(String[] args){           //這個類主要是設定郵件   	     MailSenderInfo mailInfo = new MailSenderInfo();    	     mailInfo.setMailServerHost("smtp.qiye.163.com");    	     mailInfo.setMailServerPort("25");    	     mailInfo.setValidate(true);    	     mailInfo.setUserName("[email protected]");    	     mailInfo.setPassword("ac19aznt");//您的郵箱密碼    	     mailInfo.setFromAddress("[email protected]");    	     mailInfo.setToAddress("[email protected]");    	     mailInfo.setSubject("設定郵箱標題");    	     mailInfo.setContent("設定郵箱內容");    	        //這個類主要來發送郵件   	  	     SimpleMailSender sms = new SimpleMailSender();   	     sms.sendTextMail(mailInfo);//傳送文體格式    	//   sms.sendHtmlMail(mailInfo);//傳送html格式   	     	   }    */}   
青鋒專案示例

13
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • VBA程式碼、拆分內容寫入不同單元格里面