手把手教你实现Java发送邮件(1)-发送简单的文本
生活随笔
收集整理的這篇文章主要介紹了
手把手教你实现Java发送邮件(1)-发送简单的文本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
說明:本博客已經收藏至我的gitee中的code_demo倉庫(點擊此鏈接跳轉)中,且gitee中有相應的代碼~ 歡迎訪問~~
不僅僅是code,還有一些通俗的講解哦~
文章目錄
- 一、Java實現郵件發送
- 二、Java發送郵件
- Java實現純文本郵件發送
一、Java實現郵件發送
一、郵件服務器與傳輸協議
-
要在網絡上實現郵件功能,必須要有專門的郵件服務器。這些郵件服務器類似于現實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。
-
SMTP服務器地址:一般是 smtp.xxx.com,比如163郵箱是smtp.163.com,qq郵箱是smtp.qq.com。
SMTP協議
通常把處理用戶smtp請求(郵件發送請求)的服務器稱之為SMTP服務器(郵件發送服務器)。
POP3協議
通常把處理用戶pop3請求(郵件接收請求)的服務器稱之為POP3服務器(郵件接收服務器)。
二、Java發送郵件
使用到的jar包:
- mail.jar
- activation.jar
QQ郵箱需獲取相應的權限:
QQ郵箱–>郵箱設置–>賬戶–>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 開啟POP3/SMTP服務,然后獲取16位授權碼(注意不要將授權碼泄露,一個賬戶可以擁有多個授權碼)
注意事項:
Java實現純文本郵件發送
最終效果:
import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties;/*** @Description* @Author yang_tao* @Date 2020-05-11 16:56*/ public class _01_Mail_Simple {private static final String USER = "你的郵箱"; // 發件人稱號,同郵箱地址private static final String PASSWORD = "你的授權碼"; // 如果是qq郵箱可以使戶端授權碼,或者登錄密碼/**** @param to 收件人郵箱* @param text 郵件正文* @param title 標題*//* 發送驗證信息的郵件 */public static boolean sendMail(String to, String text, String title){try {//第一步:創建配置文件,保存并讀取信息final Properties props = new Properties();// 1.設置用戶是否需要驗證props.put("mail.smtp.auth", "true");// 2.設置qq郵件服務器props.put("mail.smtp.host", "smtp.qq.com");// 發件人的賬號props.put("mail.user", USER);//發件人的密碼props.put("mail.password", PASSWORD);// 構建授權信息,用于進行SMTP進行身份驗證Authenticator authenticator = new Authenticator() {@Overrideprotected PasswordAuthentication getPasswordAuthentication() {// 實現方法,傳入發件方的郵箱地址和權限校驗碼String userName = props.getProperty("mail.user");String password = props.getProperty("mail.password");return new PasswordAuthentication(userName, password);}};//第二步:正式開始準備發送郵件// 使用環境屬性和授權信息,創建郵件會話Session mailSession = Session.getInstance(props, authenticator);// 創建郵件消息MimeMessage message = new MimeMessage(mailSession);// 設置發件人String username = props.getProperty("mail.user");InternetAddress form = new InternetAddress(username);message.setFrom(form);// 設置收件人InternetAddress toAddress = new InternetAddress(to);message.setRecipient(Message.RecipientType.TO, toAddress);// 設置郵件標題message.setSubject(title);// 設置郵件的內容體,為防止亂碼問題這里參數2將文本類型和字符編碼設置message.setContent(text, "text/html;charset=UTF-8");// 獲取連接對象,通過session對象獲取transport對象// 發送郵件Transport.send(message);return true;}catch (Exception e){e.printStackTrace();}return false;} }單元測試:
import org.junit.Test;/*** @Description* @Author yang_tao* @Date 2020-05-11 18:56*/ public class _01_JavaWeb_Mail_test {/*** 測試帶郵件發送*/@Testpublic void sendMailTest(){// 這個方法接收三個參數,第一個是收件人,第二個是郵件內容,第三個是郵件標題_01_Mail_Simple.sendMail("208820388@qq.com","你好,這是一封測試郵件,無需回復。","測試郵件");} }參考博文
總結
以上是生活随笔為你收集整理的手把手教你实现Java发送邮件(1)-发送简单的文本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java后端面试笔记-自用
- 下一篇: C#中MSMQ消息队列测试疑问