javaweb實(shí)現(xiàn)簡易郵件發(fā)送
本文實(shí)例為大家分享了javaweb實(shí)現(xiàn)簡易郵件發(fā)送的具體代碼,供大家參考,具體內(nèi)容如下
1.郵件發(fā)送
2.jar包的支持
activation-1.1.1.jar
mail-1.4.7.jar
3.授權(quán)碼的獲取
4.簡易文本郵件發(fā)送的實(shí)現(xiàn)
由上圖我們可以確定幾個(gè)必須步驟
1.創(chuàng)建session對象
2.創(chuàng)建Transport對象
3.使用郵箱的用戶名和授權(quán)碼連上郵件服務(wù)器
4.創(chuàng)建一個(gè)Message對象(需要傳遞session)
- message需要指明發(fā)件人、收件人以及文件內(nèi)容
5.發(fā)送郵件
6.關(guān)閉連接
import com.sun.mail.util.MailSSLSocketFactory; import javax.mail.*; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; public class MailDemo01 { ? ? public static void main(String[] args) throws Exception { ? ? ? ? Properties prop=new Properties(); ? ? ? ? prop.setProperty("mail.host","smtp.qq.com");///設(shè)置QQ郵件服務(wù)器 ? ? ? ? prop.setProperty("mail.transport.protocol","smtp");///郵件發(fā)送協(xié)議 ? ? ? ? prop.setProperty("mail.smtp.auth","true");//需要驗(yàn)證用戶密碼 ? ? ? ? //QQ郵箱需要設(shè)置SSL加密 ? ? ? ? MailSSLSocketFactory sf=new MailSSLSocketFactory(); ? ? ? ? sf.setTrustAllHosts(true); ? ? ? ? prop.put("mail.smtp.ssl.enable","true"); ? ? ? ? prop.put("mail.smtp.ssl.socketFactory",sf); ? ? ? ? //使用javaMail發(fā)送郵件的5個(gè)步驟 ? ? ? ? //1.創(chuàng)建定義整個(gè)應(yīng)用程序所需要的環(huán)境信息的session對象 ? ? ? ? Session session=Session.getDefaultInstance(prop, new Authenticator() { ? ? ? ? ? ? @Override ? ? ? ? ? ? protected PasswordAuthentication getPasswordAuthentication() { ? ? ? ? ? ? ? ? return new PasswordAuthentication("XXXX@qq.com","授權(quán)碼"); ? ? ? ? ? ? } ? ? ? ? }); ? ? ? ? //開啟session的debug模式,這樣可以查看到程序發(fā)送Email的運(yùn)行狀態(tài) ? ? ? ? session.setDebug(true); ? ? ? ? //2.通過session得到transport對象 ? ? ? ? Transport ts=session.getTransport(); ? ? ? ? //3.使用郵箱的用戶名和授權(quán)碼連上郵件服務(wù)器 ? ? ? ? ts.connect("smtp.qq.com","XXXX@qq.com","授權(quán)碼"); ? ? ? ? //4.創(chuàng)建郵件:寫文件 ? ? ? ? //注意需要傳遞session ? ? ? ? MimeMessage message=new MimeMessage(session); ? ? ? ? //指明郵件的發(fā)件人 ? ? ? ? message.setFrom(new InternetAddress("XXXX@qq.com")); ? ? ? ? //指明郵件的收件人 ? ? ? ? message.setRecipient(Message.RecipientType.TO,new InternetAddress("XXXX@qq.com")); ? ? ? ? //郵件標(biāo)題 ? ? ? ? message.setSubject("發(fā)送的標(biāo)題"); ? ? ? ? //郵件的文本內(nèi)容 ? ? ? ? message.setContent("內(nèi)容","text/html;charset=UTF-8"); ? ? ? ? //5.發(fā)送郵件 ? ? ? ? ts.sendMessage(message,message.getAllRecipients()); ? ? ? ? //6.關(guān)閉連接 ? ? ? ? ts.close(); ? ? } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
spring boot使用@Async異步注解的實(shí)現(xiàn)原理+源碼
通常我們都是采用多線程的方式來實(shí)現(xiàn)上述業(yè)務(wù)功能,但spring 提供更優(yōu)雅的方式來實(shí)現(xiàn)上述功能,就是@Async 異步注解,在方法上添加@Async,spring就會借助AOP,異步執(zhí)行方法,接下來通過本文給大家介紹spring boot異步注解的相關(guān)知識,一起看看吧2021-06-06詳解Spring mvc DispatchServlet 實(shí)現(xiàn)機(jī)制
本篇文章主要介紹了詳解Spring mvc DispatchServlet 實(shí)現(xiàn)機(jī)制,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09springboot如何讀取application.yml文件
這篇文章主要介紹了springboot如何讀取application.yml文件的方法,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-12-12Java得到一個(gè)整數(shù)的絕對值,不使用任何判斷和比較語句,包括API
Java得到一個(gè)整數(shù)的絕對值,不使用任何判斷和比較語句,包括API2009-09-09