新一代容器平臺ACK Anywhere,來了
阿新 • • 發佈:2021-10-09
郵件傳送
maven依賴
<!-- https://mvnrepository.com/artifact/javax.mail/mail --> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.activation/activation --> <dependency> <groupId>javax.activation</groupId> <artifactId>activation</artifactId> <version>1.1.1</version> </dependency>
普通郵件
package org.example.test; import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; public class MailDemo { public static void main(String[] args) throws Exception { Properties properties = new Properties(); properties.setProperty("mail.host","smtp.qq.com");//設定QQ郵件伺服器 properties.setProperty("mail.transport.protocol","smtp");//郵件傳送協議 properties.setProperty("mail.smtp.auth","true");//需要驗證使用者名稱和密碼 //關於QQ郵箱,還要設定SSL加密,加上以下程式碼即可 MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory(); mailSSLSocketFactory.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable","true"); properties.put("mail.smtp.ssl.socketFactory",mailSSLSocketFactory); //使用JavaMail傳送郵件的5個步驟 //1、建立定義整個應用程式所需的環境資訊的Session物件 //QQ才有!其他郵箱不用 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //發件人郵件使用者名稱、授權碼 return new PasswordAuthentication("你的qq號", "你的授權碼"); } }); //開啟Session的debug模式,這樣就可以檢視到程式傳送Email的執行狀態 session.setDebug(true); //2、通過session得到transport物件 Transport transport = session.getTransport(); //3、使用郵箱的使用者名稱和授權碼連上郵件伺服器 transport.connect("smtp.qq.com","你的qq號","你的授權碼"); //4、建立郵件 //需要傳遞Session MimeMessage mimeMessage = new MimeMessage(session); //指明郵件的發件人 mimeMessage.setFrom(new InternetAddress("你的qq號")); //指明郵件的收件人,如果發件人和收件人是一樣的,那就是自己給自己發 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("收件人qq號")); //郵件的標題 mimeMessage.setSubject("測試郵件"); //郵件的文字內容 mimeMessage.setContent("<h3>您好!測試郵件請勿回覆!!!</h3>","text/html;charset=utf-8"); //5、傳送郵件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //6、關閉連線 transport.close(); } }
附件郵件
作者:(x²+y²-1)³=x²y³ 出處:http://www.cnblogs.com/yts-helloworld/package org.example.test; import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; public class MailDemo { public static void main(String[] args) throws Exception { Properties properties = new Properties(); properties.setProperty("mail.host","smtp.qq.com");//設定QQ郵件伺服器 properties.setProperty("mail.transport.protocol","smtp");//郵件傳送協議 properties.setProperty("mail.smtp.auth","true");//需要驗證使用者名稱和密碼 //關於QQ郵箱,還要設定SSL加密,加上以下程式碼即可 MailSSLSocketFactory mailSSLSocketFactory = new MailSSLSocketFactory(); mailSSLSocketFactory.setTrustAllHosts(true); properties.put("mail.smtp.ssl.enable","true"); properties.put("mail.smtp.ssl.socketFactory",mailSSLSocketFactory); //使用JavaMail傳送郵件的5個步驟 //1、建立定義整個應用程式所需的環境資訊的Session物件 //QQ才有!其他郵箱不用 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //發件人郵件使用者名稱、授權碼 return new PasswordAuthentication("你的qq號", "你的授權碼"); } }); //開啟Session的debug模式,這樣就可以檢視到程式傳送Email的執行狀態 session.setDebug(true); //2、通過session得到transport物件 Transport transport = session.getTransport(); //3、使用郵箱的使用者名稱和授權碼連上郵件伺服器 transport.connect("smtp.qq.com","你的qq號","你的授權碼"); //4、建立郵件 //需要傳遞Session MimeMessage mimeMessage = new MimeMessage(session); //指明郵件的發件人 mimeMessage.setFrom(new InternetAddress("你的qq號")); //指明郵件的收件人,如果發件人和收件人是一樣的,那就是自己給自己發 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress("收件人qq號")); //郵件的標題 mimeMessage.setSubject("測試郵件"); //準備圖片資料 MimeBodyPart image = new MimeBodyPart(); //圖片需要經過資料處理,DataHandler:資料處理 DataHandler dataHandler = new DataHandler(new FileDataSource("附件路徑")); image.setDataHandler(dataHandler);//在MimeBodyPart中放入處理的圖片的資料 image.setContentID("起一個附件id");//給圖片設定一個ID,在後面可以使用 //準備正文資料 MimeBodyPart text = new MimeBodyPart(); text.setContent("這是一封附件郵件。<img src='cid:附件id'/>","text/html;charset=utf-8"); //描述資料關係 MimeMultipart mimeMultipart = new MimeMultipart(); mimeMultipart.addBodyPart(text); mimeMultipart.addBodyPart(image); mimeMultipart.setSubType("related"); //設定到訊息中,儲存修改 mimeMessage.setContent(mimeMultipart);//把編輯好的郵件放入到訊息中 mimeMessage.saveChanges();//儲存修改 //5、傳送郵件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //6、關閉連線 transport.close(); } }
-------------------------------------------
個性簽名:獨學而無友,則孤陋而寡聞。做一個靈魂有趣的人!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!
萬水千山總是情,打賞一分行不行,所以如果你心情還比較高興,也是可以掃碼打賞博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!