JavaMail實現發送郵件(QQ郵箱)
本文實例為大傢分享瞭JavaMail實現發送郵件的具體代碼,供大傢參考,具體內容如下
用的qq郵箱,需要去郵箱設置那邊開一下stmp服務啥的獲得下面要用到的密碼,具體開服務自己百度,這邊不截圖瞭。
代碼如下:導包和工具類,可用!
一、導這個包
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.5.0-b01</version> </dependency>
二、工具類封裝成對象
import lombok.Data; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class MailHelper { /** * 郵件服務器主機名。 */ private static String HOST_NAME; private String sendMailUrl ; private String receiveMailUrl; /** * IMAP/SMTP服務的密碼 去qq郵箱開的。 幾個月前的失效瞭還是蠻奇怪的 2021年8月5日21:33:36 */ private String servicePassword; static { //默認直接qq的吧 HOST_NAME = "smtp.qq.com"; } public MailHelper(String sendMailUrl,String receiveMailUrl,String servicePassword){ this.sendMailUrl=sendMailUrl; this.receiveMailUrl=receiveMailUrl; this.servicePassword=servicePassword; } public void sendSimpleMail(Mail mail) throws Exception { Properties prop = new Properties(); 設置郵件服務器主機名 prop.setProperty("mail.host", "smtp.qq.com"); // 發送郵件協議名稱 prop.setProperty("mail.transport.protocol", "smtp"); prop.setProperty("mail.smtp.auth", "true"); // 使用JavaMail發送郵件的5個步驟 // 1、創建session 根據配置創建會話對象, 用於和郵件服務器交互 Session session = Session.getInstance(prop); // 開啟Session的debug模式,這樣就可以查看到程序發送Email的運行狀態 session.setDebug(true); // 2、通過session得到transport對象 Transport ts = session.getTransport(); // 3、使用郵箱的用戶名和密碼連上郵件服務器,發送郵件時,發件人需要提交郵箱的用戶名和密碼給smtp服務器,用戶名和密碼都通過驗證之後才能夠正常發送郵件給收件人。 // 註:這邊host必須填寫smtp.qq.com // 而不是你qq郵箱賬號如[email protected],否則報錯host名unkonwn。 // Host:郵件服務器主機名 ts.connect(HOST_NAME, receiveMailUrl, servicePassword); // 4、創建郵件 Message message = createSimpleMail(session, mail.getTitle(), mail.getContent()); // 5、發送郵件 ts.sendMessage(message, message.getAllRecipients()); ts.close(); } private MimeMessage createSimpleMail(Session session, String title, String content) throws Exception { // 創建郵件對象 MimeMessage message = new MimeMessage(session); // 指明郵件的發件人 message.setFrom(new InternetAddress(receiveMailUrl)); // 指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發 message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiveMailUrl)); // 郵件的標題 message.setSubject(title); // 郵件的文本內容 message.setContent(content, "text/html;charset=UTF-8"); // 返回創建好的郵件對象 return message; } @Data public static class Mail{ private String title; /** * 正文 */ private String content; public Mail(){ } public Mail(String title,String content){ this.title=title; this.content=content; } } }
測試類:
package com.forever.junittest; import com.forever.gitfund.util.MailHelper; import com.forever.gitfund.util.MailHelper.Mail; import org.junit.Test; public class TestMailHelper { @Test public void test() throws Exception { String qq = "[email protected]"; String send = qq; MailHelper mailHelper = new MailHelper(qq,send,"xxxxx"); Mail mail = new Mail(); String title = "我的第一封郵件"; String content = "這是我的第一封郵件 from idea"; mail.setTitle(title); mail.setContent(content); mailHelper.sendSimpleMail(mail); } }
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。