您好,登錄后才能下訂單哦!
本文實例為大家分享了java實現發送郵件的工具類,供大家參考,具體內容如下
SendEmailUtil
<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.5</version> </dependency>
import javax.mail.Address; 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; import java.io.FileOutputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; public class SendmailUtil { //郵件服務器主機名 // QQ郵箱的 SMTP 服務器地址為: smtp.qq.com private static String myEmailSMTPHost = "smtp.qq.com"; //發件人郵箱 private static String myEmailAccount = "xxxxxxxxxx@xx.com"; //發件人郵箱密碼(授權碼) //在開啟SMTP服務時會獲取到一個授權碼,把授權碼填在這里 private static String myEmailPassword = "xxxxxxxxxxxx"; /** * 郵件單發(自由編輯短信,并發送,適用于私信) * * @param toEmailAddress 收件箱地址 * @param emailTitle 郵件主題 * @param emailContent 郵件內容 * @throws Exception */ public static void sendEmail(String toEmailAddress, String emailTitle, String emailContent) throws Exception{ Properties props = new Properties(); // 開啟debug調試 props.setProperty("mail.debug", "true"); // 發送服務器需要身份驗證 props.setProperty("mail.smtp.auth", "true"); // 端口號 props.put("mail.smtp.port", 465); // 設置郵件服務器主機名 props.setProperty("mail.smtp.host", myEmailSMTPHost); // 發送郵件協議名稱 props.setProperty("mail.transport.protocol", "smtp"); /**SSL認證,注意騰訊郵箱是基于SSL加密的,所以需要開啟才可以使用**/ MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); //設置是否使用ssl安全連接(一般都使用) props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); //創建會話 Session session = Session.getInstance(props); //獲取郵件對象 //發送的消息,基于觀察者模式進行設計的 Message msg = new MimeMessage(session); //設置郵件標題 msg.setSubject(emailTitle); //設置郵件內容 //使用StringBuilder,因為StringBuilder加載速度會比String快,而且線程安全性也不錯 StringBuilder builder = new StringBuilder(); //寫入內容 builder.append("\n" + emailContent); //寫入我的官網 builder.append("\n官網:" + "https://www.hbuecx.club"); //定義要輸出日期字符串的格式 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //在內容后加入郵件發送的時間 builder.append("\n時間:" + sdf.format(new Date())); //設置顯示的發件時間 msg.setSentDate(new Date()); //設置郵件內容 msg.setText(builder.toString()); //設置發件人郵箱 // InternetAddress 的三個參數分別為: 發件人郵箱, 顯示的昵稱(只用于顯示, 沒有特別的要求), 昵稱的字符集編碼 msg.setFrom(new InternetAddress(myEmailAccount,"你好!", "UTF-8")); //得到郵差對象 Transport transport = session.getTransport(); //連接自己的郵箱賬戶 //密碼不是自己QQ郵箱的密碼,而是在開啟SMTP服務時所獲取到的授權碼 //connect(host, user, password) transport.connect( myEmailSMTPHost, myEmailAccount, myEmailPassword); //發送郵件 transport.sendMessage(msg, new Address[] { new InternetAddress(toEmailAddress) }); //將該郵件保存到本地 OutputStream out = new FileOutputStream("MyEmail.eml"); msg.writeTo(out); out.flush(); out.close(); transport.close(); } }
//toEmailAddress 目標郵箱地址 //emailTitle 郵件標題 //emailContent 郵件內容 SendmailUtil.sendEmail(toEmailAddress, emailTitle, emailContent);
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。