java發送郵箱驗證碼
阿新 • • 發佈:2019-03-06
fin use user host 郵件發送 imp code ons brush
pom依賴導入
<!--發送郵件--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-email</artifactId> <version>1.5</version> </dependency>
然後創建一個隨機生成6位驗證碼的工具類
package com.orhe.user.utils; import java.util.Random; public class VerifyCodeUtil { //驗證碼生成範圍 //public static final String VERIFY_CODES = "23456789ABCDEFGHJKLMNPQRSTUVWXYZ"; public static final String VERIFY_CODES = "0123456789"; /** * 使用系統默認字符源生成驗證碼 * @param verifySize 驗證碼長度 * @return */ public static String generateVerifyCode(int verifySize){ return generateVerifyCode(verifySize, VERIFY_CODES); } /** * 使用指定源生成驗證碼 * @param verifySize 驗證碼長度 * @param sources 驗證碼字符源 * @return */ public static String generateVerifyCode(int verifySize, String sources){ if(sources == null || sources.length() == 0){ sources = VERIFY_CODES; } int codesLen = sources.length(); Random rand = new Random(System.currentTimeMillis()); StringBuilder verifyCode = new StringBuilder(verifySize); for(int i = 0; i < verifySize; i++){ verifyCode.append(sources.charAt(rand.nextInt(codesLen - 1))); } return verifyCode.toString();} }
創建一個發送郵件的工具類
package com.orhe.user.utils; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.HtmlEmail; /** * 郵件工具類 */ public class MailUtil { //郵箱驗證碼 public static void sendEmail(String emailaddress,String code){ // 不要使用SimpleEmail,會出現亂碼問題 HtmlEmail email = new HtmlEmail(); try { // 這裏是SMTP發送服務器的名字:,普通qq號只能是smtp.qq.com ; email.setHostName("smtp.qq.com"); //設置需要鑒權端口 email.setSmtpPort(465); //開啟 SSL 加密 email.setSSLOnConnect(true); // 字符編碼集的設置 email.setCharset("utf-8"); // 收件人的郵箱 email.addTo(emailaddress); // 發送人的郵箱 email.setFrom("[email protected]", "[email protected]"); // 如果需要認證信息的話,設置認證:用戶名-密碼。分別為發件人在郵件服務器上的註冊名稱和得到的授權碼 email.setAuthentication("[email protected]", "這裏寫你的授權碼"); email.setSubject("註冊驗證碼"); // 要發送的信息,由於使用了HtmlEmail,可以在郵件內容中使用HTML標簽 email.setMsg("歡迎註冊,您的驗證碼為:"+code+"\[email protected]"); // 發送 email.send(); System.out.println ( "郵件發送成功!" ); } catch (EmailException e) { // TODO Auto-generated catch block e.printStackTrace(); System.out.println ( "郵件發送失敗!" ); } } }
java發送郵箱驗證碼