1. 程式人生 > >java發送郵箱驗證碼

java發送郵箱驗證碼

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發送郵箱驗證碼