日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 发邮件_java实现邮件的发送

發布時間:2023/12/10 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 发邮件_java实现邮件的发送 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章所用jar文件

鏈接:https://pan.baidu.com/s/1YaxhdkaCTC4TUDL-y9-ASQ

提取碼:30ow

程序入口,發送工具類

package test;

import org.apache.commons.mail.EmailException;

/**

* 郵箱發送工具類

* @author Administrator

*

*/

public class EmailUtil {

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

//自定義工具類

EmailUtils EmailUtils = new EmailUtils();

//返回0表示發送失敗 返回1表示發送成功

int o = EmailUtils.sendSimpleEmail("123465@qq.com", "名稱", "Java send Email", "測試");

if(o==0){

System.out.println("發送失敗");

}else{

System.out.println("發送成功");

}

}

}

發送簡單郵件方法類

package test;

import org.apache.commons.mail.DefaultAuthenticator;

import org.apache.commons.mail.EmailException;

import org.apache.commons.mail.SimpleEmail;

public class EmailUtils{

/**

* 發送簡單郵件方法

* @param emailAddress

* 發送地址

* @param sendName

* 發件人名

* @param title

* 郵件標題

* @param message

* 郵件內容

* @return

* 返回0表示發送失敗 返回1表示發送成功

* @throws EmailException

*/

public int sendSimpleEmail(String emailAddress, String sendName, String title, String message) throws EmailException{

//要發送的服務器 地址

String hostName="smtp.qq.com";//對方郵箱是什么類型,這里是QQ郵箱的服務器地址

//要發送的服務器 郵箱賬號

String userName="自己的郵箱地址";

//要發送的服務器 郵箱密碼

String password="自己的郵箱密碼";

//要發送的端口 587 465 25

int smtpPort=587;

//是否使用ssl加密協議

boolean SSL=true;

try {

SimpleEmail email = new SimpleEmail();

//smtp address

email.setHostName(hostName);

//smtp port

email.setSmtpPort(smtpPort);

//賬號 密碼

email.setAuthenticator(new DefaultAuthenticator(userName, password));

//設置發件人地址

email.setFrom(userName);

//設置郵件標題

email.setSubject(title);

//設置郵件主體

//email.setMsg(message);

email.setContent(message, "text/html;charset=UTF-8");//解決亂碼

//設置收件人地址

email.addTo(emailAddress);

//設置是否使用SSL加密

email.setSSL(SSL);

//發送郵件

email.send();

} catch (Exception e) {

//異常

return 0;

}

//正常

return 1;

}

}

郵件發送控制器

package test;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class SendEmailServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// 前端form表單post請求--防止請求提交亂碼.

request.setCharacterEncoding("utf-8");

// 獲取前端傳入的參數

try {

// 郵件發送處理

SendEmailUtil.sendMail("2249119735@qq.com", "郵件測試");

// 將發送信息保存到session中

request.getSession().setAttribute("send_msg", "郵件發送成功!");

// 頁面跳轉到發送結果頁面

request.getRequestDispatcher("/index.jsp").forward(request, response);

} catch (Exception e) {

e.printStackTrace();

request.getSession().setAttribute("send_msg", "郵件發送失敗!");

request.getRequestDispatcher("/index.jsp").forward(request, response);

}

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

this.doGet(request, response);

}

}

核心發送方法

package test;

import java.util.Properties;

import javax.mail.Address;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

public class SendEmailUtil {

public static boolean sendMail(String emailAddress, String emailMsg) {

// 誰發送

String from = "1535765656@qq.com";

// 發給誰

String to = emailAddress;

// 發送者的用戶名和密碼(郵箱登錄用)

final String username = "1535765656@qq.com"; // 此處填寫發送的郵箱名

final String password = "ypvjnbyqelcsihag"; // 此處填寫登錄的郵箱密碼

// 定義properties對象,設置環境信息

Properties properties = new Properties();

/*

* mail.smtp.host :指定連接的郵件服務器的主機名。如:163郵箱就填寫smtp.163.com

* 若在本地測試的話,需要在本地安裝smtp服務器

*/

properties.setProperty("mail.smtp.host", "smtp.qq.com");

// mail.smtp.auth:指定客戶端是否要向郵件服務器提交驗證

properties.setProperty("mail.smtp.auth", "true");

/*

* mail.transport.protocol:指定郵件發送協議:smtp。smtp:發郵件;pop3:收郵件

* mail.store.protocol:指定郵件接收協議

*/

properties.setProperty("mail.transport.protocol", "smtp");

// 獲取session對象

Session session = Session.getInstance(properties);

// 當設置為true,JavaMail AP就會將其運行過程和郵件服務器的交互命令信息輸出到console中,用于JavaMail的調試

session.setDebug(true);

try {

// 創建郵件對象

MimeMessage message = new MimeMessage(session);

// 設置郵件發送方

message.setFrom(new InternetAddress(from));

// 設置郵件發送的主題

message.setSubject("郵件發送設置");

// 設置郵件發送的內容

message.setContent(emailMsg,"text/html;charset=utf-8");

Transport transport=session.getTransport();

// 連接郵件服務器,“”中填寫郵件服務器主機名

properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

transport.connect("smtp.qq.com",465, username, password);

transport.sendMessage(message,new Address[]{new InternetAddress(to)});

transport.close();

return true;

} catch (MessagingException e) {

e.printStackTrace();

return false;

}

}

}

總結

以上是生活随笔為你收集整理的java 发邮件_java实现邮件的发送的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。