<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
工具類:
package com.lhh.utils; import com.lhh.bean.EmailEntity; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * @author liuhuanhuan * @version 1.0 * @date 2021/4/26 20:51 */ public class MailSenderUtil { //建立伺服器的郵件連線,從而可以進行傳送郵件 public static Session getMailSession(EmailEntity emailEntity){ //0.1 確定連線位置 Properties properties = new Properties(); //獲取163郵箱smtp伺服器的地址, properties.setProperty("mail.host", emailEntity.getHost()); //是否進行許可權驗證。 properties.setProperty("mail.smtp.auth", emailEntity.getAuth()); //0.2確定許可權(賬號和密碼) Authenticator authenticator = new Authenticator() { @Override public PasswordAuthentication getPasswordAuthentication() { //填寫自己的163郵箱的登入帳號和授權密碼(不是登入密碼)。 return new PasswordAuthentication(emailEntity.getUserName(),emailEntity.getPassword()); } }; //1 獲得連線 /** * properties:包含設定資訊的物件,Properties型別 * 設定郵箱伺服器地址、設定是否進行許可權驗證(帳號密碼驗證)等 * * authenticator:確定許可權(帳號和密碼) * * 所以就要在上面構建這兩個物件。 */ Session session = Session.getDefaultInstance(properties, authenticator); return session; } /** * 指定一個人傳送郵件,單個傳送 * @Param toEmailAddress 單個接受郵件的郵箱地址 * @Param title 主題 * @Param content 內容 **/ public static void sendMailTOSingleUser(EmailEntity emailEntity){ //獲得郵箱伺服器的連線 Session session = getMailSession(emailEntity); //2 建立訊息 Message message = new MimeMessage(session); // 2.1 發件人 我們自己的郵箱地址,就是名稱 try { message.setFrom(new InternetAddress(emailEntity.getUserName())); /** * 2.2 收件人 * 第一個引數: * RecipientType.TO 代表收件人 * RecipientType.CC 抄送 * RecipientType.BCC 暗送 * 比如A要給B發郵件,但是A覺得有必要給要讓C也看看其內容,就在給B發郵件時, * 將郵件內容抄送給C,那麼C也能看到其內容了,但是B也能知道A給C抄送過該封郵件 * 而如果是暗送(密送)給C的話,那麼B就不知道A給C傳送過該封郵件。 * 第二個引數 * 收件人的地址,或者是一個Address[],用來裝抄送或者暗送人的名單。或者用來群發。可以是相同郵箱伺服器的,也可以是不同的 * 這裡我們傳送給我們的qq郵箱 */ message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(emailEntity.getToList().get(0))); //設定抄送人,這裡設定自己的是抄送人,免得被網易郵箱列為垃圾郵件 message.setRecipient(Message.RecipientType.CC, new InternetAddress(emailEntity.getUserName())); // 2.3 主題(標題) message.setSubject(emailEntity.getSubject()); //設定編碼,防止傳送的內容中文亂碼。 message.setContent(emailEntity.getContext(), "text/html;charset=UTF-8"); //3傳送訊息 Transport.send(message); } catch (MessagingException e) { e.printStackTrace(); } } /** * 群發郵件,也可以只發一個人。可設定主題和郵件內容,無附件 * @Param toEmailAddressArray 接受郵件的所有郵箱地址 * @Param title 主題 * @Param content 內容 **/ public static void sendMailToUserArray(EmailEntity emailEntity) { String[] toEmailAddressArray = (String[]) emailEntity.getToList().toArray(new String[0]); //獲得郵箱伺服器的連線 Session session = getMailSession(emailEntity); //2 建立訊息 Message message = new MimeMessage(session); // 2.1 發件人 我們自己的郵箱地址,就是名稱 try { message.setFrom(new InternetAddress(emailEntity.getUserName())); if (toEmailAddressArray != null) { // 為每個郵件接收者建立一個地址 Address[] toEmailRecipients = null; toEmailRecipients = new InternetAddress[toEmailAddressArray.length]; for (int i = 0; i < toEmailAddressArray.length; i++) { toEmailRecipients[i] = new InternetAddress(toEmailAddressArray[i]); } message.setRecipients(MimeMessage.RecipientType.TO, toEmailRecipients); } //設定抄送人,這裡設定自己的是抄送人,免得被網易郵箱列為垃圾郵件 message.setRecipient(Message.RecipientType.CC, new InternetAddress(emailEntity.getUserName())); // 2.3 主題(標題) message.setSubject(emailEntity.getSubject()); //設定編碼,防止傳送的內容中文亂碼。 message.setContent(emailEntity.getContext(), "text/html;charset=UTF-8"); //3傳送訊息 Transport.send(message); } catch (MessagingException ex) { ex.printStackTrace(); } } }
郵件實體類:
package com.lhh.bean; import java.io.Serializable; import java.util.ArrayList; public class EmailEntity implements Serializable { private static final long serialVersionUID = 1L; //郵箱伺服器地址 private String host; //主機埠 private Integer port; //傳送者的郵箱賬號 private String userName; //傳送者的密碼 private String password; //傳送者的郵箱地址 private String fromAddress; //接收者的郵箱地址 private ArrayList<String> toList; //設定郵件主題 private String subject; //設定郵件內容 private String context; //設定郵件型別 private String contextType; //設定是否需要驗證 private String auth; public String getAuth() { return auth; } public void setAuth(String auth) { this.auth = auth; } public String getHost() { return host; } public void setHost(String host) { this.host = host; } public Integer getPort() { return port; } public void setPort(Integer port) { this.port = port; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getFromAddress() { return fromAddress; } public void setFromAddress(String fromAddress) { this.fromAddress = fromAddress; } public ArrayList<String> getToList() { return toList; } public void setToList(ArrayList<String> toList) { this.toList = toList; } public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; } public String getContext() { return context; } public void setContext(String context) { this.context = context; } public String getContextType() { return contextType; } public void setContextType(String contextType) { this.contextType = contextType; } }
郵件常數類:
public class MailConst { //你的進行傳送郵件的郵箱 public static final String USER_NAME = "xxxx"; //授權密碼 public static final String PWD_CODE = "xxxxx"; public static final String MAIL_HOST = "smtp.163.com"; public static final String MAIL_SMTP_AUTH = "true"; //郵件主題 public static final String NOTIFICATION_MAIL_TITLE = "測試郵件"; //郵件內容 public static final String NOTIFICATION_MAIL_CONTENT = "你好,你有一個新的通知,請前往手機端進行檢視!"; }
測試郵件:
public class TestMail { public static void main(String[] args) { EmailEntity emailEntity = new EmailEntity(); ArrayList<String> emailArray = new ArrayList<>(); //測試,收取郵件的郵箱,可以填寫自己的傳送郵件的郵箱 emailArray.add("xxxx@qq.com"); emailEntity.setToList(emailArray); emailEntity.setSubject(MailConst.NOTIFICATION_MAIL_TITLE); emailEntity.setContext(MailConst.NOTIFICATION_MAIL_CONTENT); emailEntity.setUserName(MailConst.USER_NAME); emailEntity.setAuth(MailConst.MAIL_SMTP_AUTH); emailEntity.setPassword(MailConst.PWD_CODE); emailEntity.setHost(MailConst.MAIL_HOST); MailSenderUtil.sendMailToUserArray(emailEntity); // MailSenderUtil.sendMailTOSingleUser(emailEntity); } }
測試傳送結果頁面:
以上就是SpringBoot實現郵件傳送的範例程式碼的詳細內容,更多關於SpringBoot郵件傳送的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45