關於JavaMail實現QQ郵箱發送郵件的實現(一)


一 確認QQ是否開啟了POP3/SMPT協議

1.登陸QQ,打開QQ郵箱,點擊“設置”

 

2.點擊“賬戶”,拉到下面“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務”

 

3.點擊“開啟”,會看見幾種驗證方式,選擇任意一種覺得方便的方式

 

4.在驗證完之后會得到一個授權碼,這個授權碼先拷貝下來,等一下會作為系統郵箱的密碼,要是授權碼忘記了也沒有關系,可以再重新生成

 

二 測試代碼

1.在成功開啟QQ的POP3/SMTP協議之后,就可以測試發送了

 1 import java.util.Properties;
 2 
 3 import javax.mail.Message;
 4 import javax.mail.MessagingException;
 5 import javax.mail.Session;
 6 import javax.mail.Transport;
 7 import javax.mail.internet.AddressException;
 8 import javax.mail.internet.InternetAddress;
 9 import javax.mail.internet.MimeMessage;
10 import javax.mail.internet.MimeMessage.RecipientType;
11 
12 public class SendmailUtil {
13     public static void main(String[] args) throws AddressException, MessagingException {
14         Properties properties = new Properties();
15         properties.put("mail.transport.protocol", "smtp"); // 連接協議
16         properties.put("mail.smtp.host", "smtp.qq.com"); // 主機名
17         properties.put("mail.smtp.port", 465);  // 端口號
18         properties.put("mail.smtp.auth", "true");
19         properties.put("mail.smtp.ssl.enable", "true");  // 設置是否使用ssl安全連接 ---一般都使用
20         properties.put("mail.debug", "true"); // 設置是否顯示debug信息 true 會在控制台顯示相關信息
21         // 得到回話對象
22         Session session = Session.getInstance(properties);
23         // 獲取郵件對象
24         Message message = new MimeMessage(session);
25         // 設置發件人郵箱地址
26         message.setFrom(new InternetAddress("發件人郵箱@qq.com"));
27         // 設置收件人地址 
28         message.setRecipients( RecipientType.TO, new InternetAddress[] { new InternetAddress("收件人郵箱@qq.com") });
29         // 設置郵件標題
30         message.setSubject("由JavaMail發出的測試郵件");
31         // 設置郵件內容
32         message.setText("內容為: 這是第一封java發送來的郵件。");
33         // 得到郵差對象
34         Transport transport = session.getTransport();
35         // 連接自己的郵箱賬戶
36         transport.connect("發件人郵箱@qq.com", "授權碼");// 密碼為剛才得到的授權碼
37         // 發送郵件 
38         transport.sendMessage(message, message.getAllRecipients());
39     }
40 }

2.在運行代碼之后,要是控制台輸出為以下內容,則測試成功

DEBUG: JavaMail version 1.4.3
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.qq.com", port 465, isSSL true
220 smtp.qq.com Esmtp QQ Mail Server
DEBUG SMTP: connected to host "smtp.qq.com", port: 465

EHLO DESKTOP-P7GG6RA
250-smtp.qq.com
250-PIPELINING
250-SIZE 73400320
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN
250-MAILCOMPRESS
250 8BITMIME
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SIZE", arg "73400320"
DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN"
DEBUG SMTP: Found extension "AUTH=LOGIN", arg ""
DEBUG SMTP: Found extension "MAILCOMPRESS", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM 
AUTH LOGIN
334 VXNlcm5hbWU6
NDQ3ODQzMDk4QHFxLmNvbQ==
334 UGFzc3dvcmQ6
bXZ6dHJicHpxeGt5YmllYw==
235 Authentication successful
DEBUG SMTP: use8bit false
MAIL FROM:<發件人@qq.com>
250 Ok
RCPT TO:<收件人@qq.com>
250 Ok
DEBUG SMTP: Verified Addresses
DEBUG SMTP:   收件人@qq.com
DATA
354 End data with <CR><LF>.<CR><LF>
From: 發件人@qq.com
To: 收件人@qq.com
Message-ID: <696865876.0.1500865241924.JavaMail.SG@DESKTOP-P7GG6RA>
Subject: =?GBK?B?08lKYXZhTWFpbLeis/a1xLLiytTTyrz+?=
MIME-Version: 1.0
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64

xNrI3c6qo7og1eLKx7Xa0ru34mphdmG3osvNwLS1xNPKvP6how==
.
250 Ok: queued as 

3.再去收件人郵箱里面去查看是否收到郵件

 

三 注意:

  只需要發件人郵箱(也就是自己設定的系統郵箱)開通POP3/SMTP協議,收件人的郵箱是不需要開通POP3/SMTP協議的

  希望整理出來的這些內容對大家有幫助,祝大家每天都開開心心!^-^

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM