JavaMail實現(xiàn)發(fā)送郵件(QQ郵箱)
更新時間:2022年08月11日 10:26:52 作者:失落的葉
這篇文章主要為大家詳細介紹了JavaMail實現(xiàn)發(fā)送郵件(QQ郵箱),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了JavaMail實現(xiàn)發(fā)送郵件的具體代碼,供大家參考,具體內(nèi)容如下
用的qq郵箱,需要去郵箱設(shè)置那邊開一下stmp服務(wù)啥的獲得下面要用到的密碼,具體開服務(wù)自己百度,這邊不截圖了。
代碼如下:導(dǎo)包和工具類,可用!
一、導(dǎo)這個包
<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
{
? ? /**
? ? ?* 郵件服務(wù)器主機名。
? ? ?*/
? ? private static String HOST_NAME;
? ? private String sendMailUrl ;
? ? private String receiveMailUrl;
? ? /**
? ? ?* IMAP/SMTP服務(wù)的密碼 去qq郵箱開的。 幾個月前的失效了還是蠻奇怪的 2021年8月5日21:33:36
? ? ?*/
? ? private String servicePassword;
? ? static {
? ? ? ? //默認(rèn)直接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();
? ? ? ? ?設(shè)置郵件服務(wù)器主機名
? ? ? ? prop.setProperty("mail.host", "smtp.qq.com");
? ? ? ? // 發(fā)送郵件協(xié)議名稱
? ? ? ? prop.setProperty("mail.transport.protocol", "smtp");
? ? ? ? prop.setProperty("mail.smtp.auth", "true");
? ? ? ? // 使用JavaMail發(fā)送郵件的5個步驟
? ? ? ? // 1、創(chuàng)建session 根據(jù)配置創(chuàng)建會話對象, 用于和郵件服務(wù)器交互
? ? ? ? Session session = Session.getInstance(prop);
? ? ? ? // 開啟Session的debug模式,這樣就可以查看到程序發(fā)送Email的運行狀態(tài)
? ? ? ? session.setDebug(true);
? ? ? ? // 2、通過session得到transport對象
? ? ? ? Transport ts = session.getTransport();
? ? ? ? // 3、使用郵箱的用戶名和密碼連上郵件服務(wù)器,發(fā)送郵件時,發(fā)件人需要提交郵箱的用戶名和密碼給smtp服務(wù)器,用戶名和密碼都通過驗證之后才能夠正常發(fā)送郵件給收件人。
? ? ? ? // 注:這邊host必須填寫smtp.qq.com
? ? ? ? // 而不是你qq郵箱賬號如1741049@qq.com,否則報錯host名unkonwn。
? ? ? ? // Host:郵件服務(wù)器主機名
? ? ? ? ts.connect(HOST_NAME, receiveMailUrl, servicePassword);
? ? ? ? // 4、創(chuàng)建郵件
? ? ? ? Message message = createSimpleMail(session, mail.getTitle(), mail.getContent());
? ? ? ? // 5、發(fā)送郵件
? ? ? ? ts.sendMessage(message, message.getAllRecipients());
? ? ? ? ts.close();
? ? }
? ??
? ? private MimeMessage createSimpleMail(Session session, String title, String content) throws Exception {
? ? ? ? // 創(chuàng)建郵件對象
? ? ? ? MimeMessage message = new MimeMessage(session);
? ? ? ? // 指明郵件的發(fā)件人
? ? ? ? message.setFrom(new InternetAddress(receiveMailUrl));
? ? ? ? // 指明郵件的收件人,現(xiàn)在發(fā)件人和收件人是一樣的,那就是自己給自己發(fā)
? ? ? ? message.setRecipient(Message.RecipientType.TO, new InternetAddress(receiveMailUrl));
? ? ? ? // 郵件的標(biāo)題
? ? ? ? message.setSubject(title);
? ? ? ? // 郵件的文本內(nèi)容
? ? ? ? message.setContent(content, "text/html;charset=UTF-8");
? ? ? ? // 返回創(chuàng)建好的郵件對象
? ? ? ? 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 = "xx@qq.com";
? ? ? ? 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);
? ? }
}以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
springboot中如何使用openfeign進行接口調(diào)用
這篇文章主要介紹了springboot中如何使用openfeign進行接口調(diào)用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Java org.w3c.dom.Document 類方法引用報錯
這篇文章主要介紹了Java org.w3c.dom.Document 類方法引用報錯的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
Java實現(xiàn)圖片上文字內(nèi)容的動態(tài)修改的操作步驟
在數(shù)字圖像處理領(lǐng)域,Java提供了強大的庫來處理圖片,包括讀取、修改和寫入圖片,如果你需要在Java應(yīng)用程序中修改圖片上的文字內(nèi)容,可以通過圖像處理技術(shù)來實現(xiàn),這篇博文將介紹如何使用Java實現(xiàn)圖片上文字內(nèi)容的動態(tài)修改,需要的朋友可以參考下2024-07-07
Spring boot自定義http反饋狀態(tài)碼詳解
這篇文章主要給大家介紹了Spring boot自定義http反饋狀態(tài)碼的相關(guān)資料,文中介紹的非常詳細,對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。2017-06-06

