用JavaMail通過QQ郵箱來發送郵件(第一篇博客,備忘)


1.先啟用QQ郵箱里POP3/STMP服務;生成授權碼

2.導入mail.jar包(不要用太古董的技術,你懂得)

3.注意要在代碼里加上開啟SSL加密的代碼

4.直接上代碼

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;

import com.sun.mail.util.MailSSLSocketFactory;

/**
*JavaMail發送郵件:前提是QQ郵箱里帳號設置要開啟POP3/SMTP協議
*/
public class SendMail {

public static void main(String[] args) throws Exception {

Properties prop = new Properties();
// 開啟debug調試,以便在控制台查看
prop.setProperty("mail.debug", "true");
// 設置郵件服務器主機名
prop.setProperty("mail.host", "smtp.qq.com");
// 發送服務器需要身份驗證
prop.setProperty("mail.smtp.auth", "true");
// 發送郵件協議名稱
prop.setProperty("mail.transport.protocol", "smtp");

// 開啟SSL加密,否則會失敗
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable", "true");
prop.put("mail.smtp.ssl.socketFactory", sf);

// 創建session
Session session = Session.getInstance(prop);
// 通過session得到transport對象
Transport ts = session.getTransport();
// 連接郵件服務器:郵箱類型,帳號,授權碼代替密碼(更安全)
ts.connect("smtp.qq.com","752218529", "jdvyisppjnaxbfei");//后面的字符是授權碼,用qq密碼反正我是失敗了(用自己的,別用我的,這個號是我瞎編的,為了。。。。)
// 創建郵件
Message message = createSimpleMail(session);
// 發送郵件
ts.sendMessage(message, message.getAllRecipients());
ts.close();
}

/**
* @Method: createSimpleMail
* @Description: 創建一封只包含文本的郵件
*/
public static MimeMessage createSimpleMail(Session session)
throws Exception {
// 創建郵件對象
MimeMessage message = new MimeMessage(session);
// 指明郵件的發件人
message.setFrom(new InternetAddress("752218529@qq.com"));
// 指明郵件的收件人,現在發件人和收件人是一樣的,那就是自己給自己發
message.setRecipient(Message.RecipientType.TO, new InternetAddress("752218529@qq.com"));
// 郵件的標題
message.setSubject("JavaMail測試");
// 郵件的文本內容
message.setContent("JavaMail發送郵件成功!", "text/html;charset=UTF-8");
// 返回創建好的郵件對象
return message;
}
}

 


免責聲明!

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



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