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("83945709@qq.com", "839454709@qq.com");
// 如果需要認證信息的話,設置認證:用戶名-密碼。分別為發件人在郵件服務器上的注冊名稱和得到的授權碼
email.setAuthentication("839454709@qq.com", "這里寫你的授權碼");
email.setSubject("注冊驗證碼");
// 要發送的信息,由於使用了HtmlEmail,可以在郵件內容中使用HTML標簽
email.setMsg("歡迎注冊,您的驗證碼為:"+code+"\n@orhe.cn");
// 發送
email.send();
System.out.println ( "郵件發送成功!" );
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println ( "郵件發送失敗!" );
}
}
}
