百度百科這樣說的html
用戶註冊時,輸入郵箱 經過JavaMail技術,向用戶郵箱發送一封激活郵件, 含有激活碼 用戶在24小時內, 能夠點擊激活郵件連接, 板頂郵箱 郵箱激活碼保存時間能夠使用Redis(內存數據庫)實現
開啓客戶端受權碼(開啓POP3/SMTP服務和IMAP/SMTP服務) java
<dependencies> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> </dependencies>
1 設置郵件發送的屬性 2 設置主機地址 3 設置是否打開驗證 4 建立連接 5 建立郵件 6 設置發送者 7 設置接收者 8 設置標題 9 設置正文 10 發送
package com.manlu; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Properties; /** * @author 漫路 */ public class Demo { public static void main(String[] args) throws Exception { // 1 準備發送郵件須要的參數 Properties props = new Properties(); // 設置主機地址 smtp.qq.com smtp.126.com smtp.163.com props.put("mail.smtp.host", "smtp.163.com"); // 是否打開驗證:只能設置true,必須打開 props.put("mail.smtp.auth", true); // 2 鏈接郵件服務器 Session session = Session.getDefaultInstance(props); // 3 建立郵件信息 MimeMessage message = new MimeMessage(session); // 4 設置發送者。 來源郵箱,使用你的帳號 InternetAddress fromAddress = new InternetAddress("123456@163.com"); message.setFrom(fromAddress); // 5 設置接收者。接收者的郵箱 InternetAddress toAddress = new InternetAddress("654321@qq.com"); // to:直接接收者 cc:抄送 bcc:暗送 message.setRecipient(MimeMessage.RecipientType.TO, toAddress); // 6 設置主題 message.setSubject("測試標題"); // 7 設置正文 message.setText("小老弟,幹嗎呢??"); // 設置HTML方式發送 //message.setContent(text, "text/html;charset=utf-8"); // 8 發送:小老弟,幹嗎呢??? Transport transport = session.getTransport("smtp");// 參數不能少,表示的是發送協議 // 登陸郵箱,此處的密碼是受權碼 // 受權碼(登陸郵箱-->設置-->郵箱安全設置-->客戶端受權密碼),這裏不是郵箱的密碼,切記! transport.connect("123456@163.com", "1234"); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("ok"); } }
注意:上面代碼裏的參數我胡亂填的,改爲你真實的便可數據庫
成功安全
package com.manlu.utils; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType; import java.util.Properties; /** * @author manlu */ public class MailUtil { public static String smtp_host = "smtp.163.com"; // 基於那個平臺? 咱們使用網易 public static String username = "sqczdx@163.com"; // 郵箱 改成你的 public static String password = "q7w8e9a4s5d6"; // 受權碼(登陸郵箱-->設置-->郵箱安全設置-->客戶端受權密碼),這裏不是郵箱的密碼,切記! public static String from = "sqczdx@163.com"; // 來源郵箱,改爲你的帳號 /** * 發送郵箱方法 * @param to 接收者郵箱 * @param subject 郵箱內容 * @param text 郵箱標題 * @throws Exception */ public static void sendMail(String to, String subject, String text) throws Exception { // 1 準備發送郵件須要的參數 Properties props = new Properties(); // 設置主機地址 smtp.qq.com smtp.126.com smtp.163.com props.put("mail.smtp.host", smtp_host); // 是否打開驗證:只能設置true,必須打開 props.put("mail.smtp.auth", true); // 2 鏈接郵件服務器 Session session = Session.getDefaultInstance(props); // 3 建立郵件信息 MimeMessage message = new MimeMessage(session); // 4 設置發送者 InternetAddress fromAddress = new InternetAddress(from); message.setFrom(fromAddress); // 5 設置接收者 InternetAddress toAddress = new InternetAddress(to); // to:直接接收者 cc:抄送 bcc暗送 message.setRecipient(RecipientType.TO, toAddress); // 6 設置主題 message.setSubject(subject); // 7 設置正文 message.setText(text); // 設置HTML方式發送 //message.setContent(text, "text/html;charset=utf-8"); // 8 發送:麼麼噠 Transport transport = session.getTransport("smtp");// 參數不能少,表示的是發送協議 // 登陸郵箱,此處的密碼是受權碼 transport.connect(username, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); System.out.println("ok"); } /** * 測試main方法 * 這樣在別的類中也能夠調用了,一行代碼便可 * @param args */ public static void main(String[] args) { try { MailUtil.sendMail("550945825@qq.com", "麼麼噠", "測試標題"); } catch (Exception e) { e.printStackTrace(); } } }