日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java實現郵件發送的過程及代碼詳解

瀏覽:6日期:2022-08-29 08:23:29

Java實現郵件發送

一、郵件服務器與傳輸協議

要在網絡上實現郵件功能,必須要有專門的郵件服務器。這些郵件服務器類似于現實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。

SMTP服務器地址:一般是 smtp.xxx.com,比如163郵箱是smtp.163.com,qq郵箱是smtp.qq.com。

SMTP協議通常把處理用戶smtp請求(郵件發送請求)的服務器稱之為SMTP服務器(郵件發送服務器)。

POP3協議通常把處理用戶pop3請求(郵件接收請求)的服務器稱之為POP3服務器(郵件接收服務器)。

二、Java發送郵件

Java實現郵件發送的過程及代碼詳解

使用到的jar包:

mail.jar activation.jar

QQ郵箱需獲取相應的權限:

QQ郵箱?>郵箱設置?>賬戶?>POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 開啟POP3/SMTP服務,然后獲取16位授權碼(注意不要將授權碼泄露,一個賬戶可以擁有多個授權碼)

Java實現郵件發送的過程及代碼詳解

Java實現純文本郵件發送

package org.westos.email;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.*;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.security.GeneralSecurityException;import java.util.Properties;public class SendEamil { public static void main(String[] args) throws MessagingException, GeneralSecurityException { //創建一個配置文件并保存 Properties properties = new Properties(); properties.setProperty('mail.host','smtp.qq.com'); properties.setProperty('mail.transport.protocol','smtp'); properties.setProperty('mail.smtp.auth','true'); //QQ存在一個特性設置SSL加密 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); properties.put('mail.smtp.ssl.enable', 'true'); properties.put('mail.smtp.ssl.socketFactory', sf); //創建一個session對象 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication('619046217@qq.com','16位授權碼'); } }); //開啟debug模式 session.setDebug(true); //獲取連接對象 Transport transport = session.getTransport(); //連接服務器 transport.connect('smtp.qq.com','619046217@qq.com','16位授權碼'); //創建郵件對象 MimeMessage mimeMessage = new MimeMessage(session); //郵件發送人 mimeMessage.setFrom(new InternetAddress('619046217@qq.com')); //郵件接收人 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress('875203654@qq.com')); //郵件標題 mimeMessage.setSubject('Hello Mail'); //郵件內容 mimeMessage.setContent('我的想法是把代碼放進一個循環里','text/html;charset=UTF-8'); //發送郵件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //關閉連接 transport.close(); }}

Java實現文本圖片附件復雜的郵件發送

MIME(多用途互聯網郵件擴展類型)

MimeBodyPart類

javax.mail.internet.MimeBodyPart類 表示的是一個MIME消息,它和MimeMessage類一樣都是從Part接口繼承過來。

MimeMultipart類

javax.mail.internet.MimeMultipart是抽象類 Multipart的實現子類,它用來組合多個MIME消息。一個MimeMultipart對象可以包含多個代表MIME消息的MimeBodyPart對象

package org.westos.email;import com.sun.mail.util.MailSSLSocketFactory;import javax.activation.DataHandler;import javax.activation.FileDataSource;import javax.mail.*;import javax.mail.internet.*;import java.security.GeneralSecurityException;import java.util.Properties;public class SendComplexEmail { public static void main(String[] args) throws GeneralSecurityException, MessagingException { Properties prop = new Properties(); prop.setProperty('mail.host', 'smtp.qq.com'); //// 設置QQ郵件服務器 prop.setProperty('mail.transport.protocol', 'smtp'); // 郵件發送協議 prop.setProperty('mail.smtp.auth', 'true'); // 需要驗證用戶名密碼 // QQ郵箱設置SSL加密 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); prop.put('mail.smtp.ssl.enable', 'true'); prop.put('mail.smtp.ssl.socketFactory', sf); //1、創建定義整個應用程序所需的環境信息的 Session 對象 Session session = Session.getDefaultInstance(prop, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //傳入發件人的姓名和授權碼 return new PasswordAuthentication('619046217@qq.com','16位授權碼'); } }); //2、通過session獲取transport對象 Transport transport = session.getTransport(); //3、通過transport對象郵箱用戶名和授權碼連接郵箱服務器 transport.connect('smtp.qq.com','619046217@qq.com','16位授權碼'); //4、創建郵件,傳入session對象 MimeMessage mimeMessage = complexEmail(session); //5、發送郵件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); //6、關閉連接 transport.close(); } public static MimeMessage complexEmail(Session session) throws MessagingException { //消息的固定信息 MimeMessage mimeMessage = new MimeMessage(session); //發件人 mimeMessage.setFrom(new InternetAddress('619046217@qq.com')); //收件人 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress('619046217@qq.com')); //郵件標題 mimeMessage.setSubject('帶圖片和附件的郵件'); //郵件內容 //準備圖片數據 MimeBodyPart image = new MimeBodyPart(); DataHandler handler = new DataHandler(new FileDataSource('E:IdeaProjectsWebEmailresources測試圖片.png')); image.setDataHandler(handler); image.setContentID('test.png'); //設置圖片id //準備文本 MimeBodyPart text = new MimeBodyPart(); text.setContent('這是一段文本<img src=’cid:test.png’>','text/html;charset=utf-8'); //附件 MimeBodyPart appendix = new MimeBodyPart(); appendix.setDataHandler(new DataHandler(new FileDataSource('E:IdeaProjectsWebEmailresources測試文件.txt'))); appendix.setFileName('test.txt'); //拼裝郵件正文 MimeMultipart mimeMultipart = new MimeMultipart(); mimeMultipart.addBodyPart(image); mimeMultipart.addBodyPart(text); mimeMultipart.setSubType('related');//文本和圖片內嵌成功 //將拼裝好的正文內容設置為主體 MimeBodyPart contentText = new MimeBodyPart(); contentText.setContent(mimeMultipart); //拼接附件 MimeMultipart allFile = new MimeMultipart(); allFile.addBodyPart(appendix);//附件 allFile.addBodyPart(contentText);//正文 allFile.setSubType('mixed'); //正文和附件都存在郵件中,所有類型設置為mixed //放到Message消息中 mimeMessage.setContent(allFile); mimeMessage.saveChanges();//保存修改 return mimeMessage; }}

JavaWeb發送郵件(網站注冊成功發送提示郵件)

1.User

package org.westos.mail;public class User { private String name; private String password; private String mail; public User() { } public User(String name, String password, String mail) { this.name = name; this.password = password; this.mail = mail; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getMail() { return mail; } public void setMail(String mail) { this.mail = mail; } @Override public String toString() { return 'User{' + 'name=’' + name + ’’’ + ', password=’' + password + ’’’ + ', mail=’' + mail + ’’’ + ’}’; }}

2.Servlet

package org.westos.mail;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;public class Servlet extends javax.servlet.http.HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) { //處理前端請求 String username = request.getParameter('username'); String password = request.getParameter('password'); String email = request.getParameter('email'); //將信息封裝進user對象 User user = new User(username, password, email); SendMail sendMail = new SendMail(user); sendMail.start(); //開啟線程 request.setAttribute('msg','發送成功'); try { request.getRequestDispatcher('msg.jsp').forward(request,response); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }}

3.SengMail

package org.westos.mail;import com.sun.mail.util.MailSSLSocketFactory;import javax.mail.*;import javax.mail.internet.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;import java.security.GeneralSecurityException;import java.security.PublicKey;import java.util.Properties;public class SendMail extends Thread { //發件人信息 private String From = '619046217@qq.com'; //發件人郵箱 private String recipient = '619046217@qq.com'; //郵箱密碼 private String password = '16位授權碼'; //郵件發送的服務器 private String host = 'smtp.qq.com'; //收件人信息 private User user; public SendMail(User user){ this.user = user; } @Override public void run() { try { Properties properties = new Properties(); properties.setProperty('mail.host','smtp.qq.com'); properties.setProperty('mail.transport.protocol','smtp'); properties.setProperty('mail.smtp.auth','true'); //QQ存在一個特性設置SSL加密 MailSSLSocketFactory sf = null; try { sf = new MailSSLSocketFactory(); } catch (GeneralSecurityException e) { e.printStackTrace(); } sf.setTrustAllHosts(true); properties.put('mail.smtp.ssl.enable', 'true'); properties.put('mail.smtp.ssl.socketFactory', sf); //創建一個session對象 Session session = Session.getDefaultInstance(properties, new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(recipient,password); } }); //開啟debug模式 session.setDebug(true); //獲取連接對象 Transport transport = null; try { transport = session.getTransport(); } catch (NoSuchProviderException e) { e.printStackTrace(); } //連接服務器 transport.connect(host,From,password); //創建一個郵件發送對象 MimeMessage mimeMessage = new MimeMessage(session); //郵件發送人 mimeMessage.setFrom(new InternetAddress(recipient)); //郵件接收人 mimeMessage.setRecipient(Message.RecipientType.TO,new InternetAddress(user.getMail())); //郵件標題 mimeMessage.setSubject('網站注冊成功'); //郵件內容 mimeMessage.setContent('網站注冊成功,密碼為'+user.getPassword()+',請妥善保管密碼','text/html;charset=UTF-8'); //發送郵件 transport.sendMessage(mimeMessage,mimeMessage.getAllRecipients()); transport.close(); }catch (Exception e){ e.printStackTrace(); } }}

4.register.jsp

<%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head> <title>注冊頁面</title></head><body><form action='${pageContext.request.contextPath}/a.do' method='post'> <p>用戶名:<input type='text' name='username' required></p> <p>密碼:<input type='password' name='password' required></p> <p>郵箱:<input type='email' name='email' required></p> <p><input type='submit' value='提交'></p></form></body></html>

5.msg.jsp

<%@ page contentType='text/html;charset=UTF-8' language='java' %><html><head> <title>Title</title></head><body>${msg}</body></html>

6.web.xml

<?xml version='1.0' encoding='UTF-8'?><web-app xmlns='http://xmlns.jcp.org/xml/ns/javaee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd' version='4.0'> <servlet> <servlet-name>Servlet</servlet-name> <servlet-class>org.westos.mail.Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Servlet</servlet-name> <url-pattern>/a.do</url-pattern> </servlet-mapping></web-app>

到此這篇關于Java實現郵件發送的過程及代碼詳解的文章就介紹到這了,更多相關Java實現郵件發送內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
福利一区二区免费视频| 亚洲国产不卡| 日韩精品成人在线观看| 色狠狠一区二区三区| 婷婷精品在线| 人人爱人人干婷婷丁香亚洲| 国产精品第一国产精品| 黄色精品视频| 欧洲av一区二区| 国产视频欧美| 日韩和欧美一区二区三区| 国产欧美成人| 国产精品久久久久久久免费观看| 精品丝袜在线| 亚洲成人三区| 亚洲日韩中文字幕一区| 国产女人18毛片水真多18精品| 精品高清久久| 自拍日韩欧美| 日本欧美在线| 国产一区二区三区亚洲| av一区在线| 喷白浆一区二区| 国产另类在线| 久久婷婷丁香| 日韩欧美久久| 福利欧美精品在线| 亚洲欧洲一区| 欧美日本久久| 日韩福利一区| 中文字幕亚洲精品乱码| 狠狠久久伊人| 亚洲欧美视频| 欧美黑人做爰爽爽爽| 成人午夜国产| 日本中文字幕一区二区| 成人精品久久| 一区二区三区四区在线观看国产日韩| 久久精品凹凸全集| 亚洲女同av| 中文一区一区三区免费在线观| 麻豆精品在线| 夜夜嗨网站十八久久 | 国产乱子精品一区二区在线观看| 国产成人精品999在线观看| 午夜欧美视频| 里番精品3d一二三区| 欧美日韩国产一区二区三区不卡 | 国产高清一区| 国产毛片一区二区三区| 99久久亚洲精品蜜臀| 青青草91久久久久久久久| 热三久草你在线| 日韩欧美2区| 日韩在线短视频| 日本欧美一区二区在线观看| 亚洲不卡av不卡一区二区| 久久国产三级精品| 欧美日韩日本国产亚洲在线 | 亚洲www啪成人一区二区| 日本麻豆一区二区三区视频| 亚洲精品国产嫩草在线观看| 色8久久久久| 日韩高清中文字幕一区二区| 欧美一区91| 尹人成人综合网| 国产精品麻豆成人av电影艾秋 | 久久久久亚洲精品中文字幕| 国产精品丝袜xxxxxxx| 精品视频91| 日韩精品高清不卡| 欧美日韩国产探花| 亚洲永久av| 国产精品麻豆成人av电影艾秋| 亚洲中字黄色| 91精品国产91久久久久久黑人| 免费在线播放第一区高清av| 中文字幕乱码亚洲无线精品一区| 国产suv精品一区| 欧美日韩xxxx| 亚洲视频www| 亚洲高清成人| 激情亚洲影院在线观看| 另类欧美日韩国产在线| 日韩一二三区在线观看| 亚洲欧美综合| 蜜桃精品在线| 国产66精品| 国产精品中文字幕制服诱惑| 中文无码日韩欧| 99在线精品免费视频九九视| 桃色一区二区| 中文字幕在线视频久| 国产精选一区| 日韩 欧美一区二区三区| 亚洲深夜av| 美女少妇全过程你懂的久久| 免费观看亚洲| 亚洲永久av| 成人精品久久| 精品视频99| 久久影院资源站| 国产精品成人自拍| 国产欧美日韩精品一区二区三区 | 福利在线免费视频| 久久的色偷偷| 国产日韩欧美三级| 青草av.久久免费一区| 蜜桃视频一区二区三区| 欧美日韩国产高清电影| 亚洲香蕉网站| 欧美成人综合| 激情91久久| 婷婷久久一区| 午夜日本精品| 午夜在线视频一区二区区别| 合欧美一区二区三区| 欧美日韩免费观看一区=区三区| 国户精品久久久久久久久久久不卡| 亲子伦视频一区二区三区| 免费看久久久| 国产精品99久久久久久董美香| 国产精品久久久久久久久免费高清| 久久精品99久久久| 国产精品毛片aⅴ一区二区三区| 欧美国产极品| 色婷婷色综合| 久久精品青草| 国产视频一区三区| 日韩精品一区第一页| 五月激激激综合网色播| 国产日韩一区二区三区在线播放| 国产精品久一| 成人影视亚洲图片在线| 亚洲综合在线电影| 黄色日韩在线| 免费久久99精品国产自在现线| 亚洲婷婷丁香| 国产日韩中文在线中文字幕| 麻豆国产一区| 日韩在线精品| 国产亚洲在线观看| 日韩和欧美一区二区| 国产精品久久久久久妇女| 国产成人免费精品| 欧美性感美女一区二区| 蜜桃伊人久久| 国产精品久久久久9999高清| 色乱码一区二区三区网站| 激情丁香综合| 日韩精品免费视频一区二区三区| 久久黄色影视| 日韩中文字幕高清在线观看| 中文精品在线| 久久精品xxxxx| 黄色在线网站噜噜噜| av一区二区高清| 日韩美女国产精品| 水蜜桃久久夜色精品一区| 精品一区亚洲| 久久精品 人人爱| 日韩在线视频精品| 中文视频一区| 国产成人精品一区二区三区视频| 亚洲午夜黄色| 日本欧美韩国一区三区| 欧美黑人做爰爽爽爽| 亚洲午夜91| 久久国产精品免费一区二区三区| 天堂av在线| 婷婷综合国产| 欧美亚洲日本精品| 一本一道久久a久久| 高潮久久久久久久久久久久久久| 黄色日韩在线| 麻豆精品av| 性色av一区二区怡红| 久久精品福利| 快she精品国产999| 国产一区二区三区不卡av| 男人的天堂久久精品| 麻豆成人综合网| 蜜臀av一区二区在线免费观看| 国语对白精品一区二区| 男人的天堂久久精品| 国产资源在线观看入口av| 中文字幕中文字幕精品| 国产超碰精品| 国产欧美日韩一区二区三区四区 | 日韩国产91| 久久久久久久久丰满| 国产欧美大片| 亚洲女人av| 在线中文字幕播放| 欧美一级全黄| 黄色国产精品| 91青青国产在线观看精品| 亚洲开心激情| 激情综合在线| 国产一区二区亚洲|