JavaMail 給多人傳送郵件
阿新 • • 發佈:2018-12-13
JavaMail傳送郵件 多人傳送
-
在我們開發過程中經常會用到郵件,比如 : 傳送通知,找回密碼 驗證碼 等等,再次總結了使用javaMail傳送郵件,無需單間james等郵件伺服器也可傳送郵件
-
javaMail官網 在裡面可以找到詳細的文件以及案例和jar包
-
我們都知道在前後端互動都是有協議的,http協議,JavaMail也有自己的協議,SMTP/POP3和IMAP
-
使用javaMail前提是可以連線外網.
-
廢話不多說,直接上案例:
-
匯入依賴,在沒使用maven的話匯入相應的jar包,點此下載
<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.2</version> </dependency>
-
測試案例:這是一個模板工具
package com.bgi.util; import org.springframework.core.io.ClassPathResource; import javax.mail.Address; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.io.IOException; import java.util.Date; import java.util.Properties; public class EmailUtil { //獲取屬性檔案中的值,建議把配置的資訊放到屬性檔案中,方便修改和獲取 private static Properties properties = new Properties(); static{ try { //加在屬性檔案 properties.load(new ClassPathResource("properties/email.properties").getInputStream()); } catch (IOException e) { } } public static String SMTPSERVER = properties.getProperty("smtp.server"); //從屬性檔案中獲取值其中key為smtp.server public static String SMTPPORT = properties.getProperty("smtp.port"); //埠號 465 465 465 不是456 public static String ACCOUT = properties.getProperty("smtp.account");//賬戶名:我的是163賬戶,此賬戶必須在設定中開啟授權碼授權 public static String PWD = properties.getProperty("smtp.pwd"); //授權密碼 public static String users = properties.getProperty("email.users"); //這裡是傳送給多個使用者多個使用者用都好分割
要被設定為 TO, CC 或者 BCC,這裡 CC 代表抄送、BCC 代表祕密抄送。舉例:Message.RecipientType.TO//type:
msg.setRecipients(MimeMessage.RecipientType.TO, internetAddressTo); // 設定郵件標題 msg.setSubject("測試標題", "utf-8"); msg.setText(content); // 設定顯示的發件時間 msg.setSentDate(new Date()); // 儲存設定 msg.saveChanges(); return msg; } }
-
email.properties
smtp.server=smtp.163.com smtp.port=465 [email protected] smtp.pwd=xxxxx [email protected],[email protected],[email protected]
-
163郵箱開啟授權:
-
-
-
qq郵箱開啟授權: 點選生成授權碼,即可生成授權碼
-