邮箱激活码的发送
This commit is contained in:
100
src/main/java/com/lovenav/utls/EmailUtils.java
Normal file
100
src/main/java/com/lovenav/utls/EmailUtils.java
Normal file
@@ -0,0 +1,100 @@
|
||||
package com.lovenav.utls;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import com.lovenav.entity.User;
|
||||
import org.jsoup.Jsoup;
|
||||
import org.jsoup.nodes.Document;
|
||||
|
||||
import javax.mail.Session;
|
||||
import javax.mail.Transport;
|
||||
import javax.mail.internet.InternetAddress;
|
||||
import javax.mail.internet.MimeMessage;
|
||||
import java.io.File;
|
||||
import java.util.Date;
|
||||
import java.util.Properties;
|
||||
|
||||
/*
|
||||
* 基于JDK实现邮件发送
|
||||
* 主要是实现激活码的发送
|
||||
* */
|
||||
public class EmailUtils {
|
||||
|
||||
public static void sendEmail(User user,String activecode) {
|
||||
//邮箱 lx_teach@163.com
|
||||
String myAccount = "482370576@qq.com";
|
||||
//授权码 java168
|
||||
String myPass = "rgggscegbprzbhcc";
|
||||
//邮箱服务器
|
||||
String SMTPHost = "smtp.qq.com";
|
||||
//设置属性信息
|
||||
Properties prop = new Properties();
|
||||
//设置协议
|
||||
prop.setProperty("mail.transport.protocol", "smtp");
|
||||
//邮件服务器
|
||||
prop.setProperty("mail.smtp.host", SMTPHost);
|
||||
//认证
|
||||
prop.setProperty("mail.smtp.auth", "true");
|
||||
//1、创建会话
|
||||
Session session = Session.getDefaultInstance(prop);
|
||||
//设置是否需要调试
|
||||
session.setDebug(false);
|
||||
//2、创建发送信息
|
||||
MimeMessage message = createMsg(session, myAccount, user, activecode);
|
||||
//4发送信息操作
|
||||
try {
|
||||
Transport tran = session.getTransport();
|
||||
//连接
|
||||
tran.connect(myAccount, myPass);
|
||||
//发送消息
|
||||
tran.sendMessage(message, message.getAllRecipients());
|
||||
//关闭
|
||||
tran.close();
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//生成邮件消息
|
||||
private static MimeMessage createMsg(Session session, String myAccount, User user,String activecode) {
|
||||
//创建消息对象
|
||||
MimeMessage message = new MimeMessage(session);
|
||||
//设置
|
||||
try {
|
||||
//3.1发送方
|
||||
message.setFrom(new InternetAddress(myAccount, "官方邮件", "utf-8"));
|
||||
//3.2设置接收方
|
||||
/*
|
||||
* MimeMessage.RecipientType.TO
|
||||
* MimeMessage.RecipientType.CC
|
||||
* MimeMessage.RecipientType.BCC
|
||||
* */
|
||||
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(user.getUserEmail()));
|
||||
//3.3 设置主题
|
||||
message.setSubject("激活码", "utf-8");
|
||||
//获取本机的ip地址
|
||||
// String ip = Inet4Address.getLocalHost().getHostAddress();
|
||||
// String url = "http://" + ip + ":80/activate?e=" + Base64Utils.encode(user.getEmail()) + "&c=" + Base64Utils.encode(user.getActivatecode());
|
||||
//设置正文信息
|
||||
// message.setContent(user.getUsername() + ",欢迎你加入我们<br>为了更好体验我们的产品,请<a href='" + url + "'>点击激活 " + url + "</a>", "text/html;charset=utf-8");
|
||||
File file=new File("src/main/resources/static/sendEmailActivecode.html");
|
||||
Document document= Jsoup.parse(file,"utf-8");
|
||||
document.getElementById("0").getElementsByClass("button").append(String.valueOf(activecode.charAt(0)));
|
||||
document.getElementById("1").getElementsByClass("button").append(String.valueOf(activecode.charAt(1)));
|
||||
document.getElementById("2").getElementsByClass("button").append(String.valueOf(activecode.charAt(2)));
|
||||
document.getElementById("3").getElementsByClass("button").append(String.valueOf(activecode.charAt(3)));
|
||||
message.setContent( document.toString(), "text/html;charset=utf-8");
|
||||
//设置日期
|
||||
message.setSentDate(new Date());
|
||||
//保存
|
||||
message.saveChanges();
|
||||
} catch (Exception e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return message;
|
||||
}
|
||||
}
|
41
src/main/java/com/lovenav/utls/FileUtils.java
Normal file
41
src/main/java/com/lovenav/utls/FileUtils.java
Normal file
@@ -0,0 +1,41 @@
|
||||
|
||||
package com.lovenav.utls;
|
||||
|
||||
import java.io.File;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
/**
|
||||
* @Title: FileUtils.java
|
||||
* @Package com.qfedu.common.utils
|
||||
* @Description: TODO(用一句话描述该文件做什么)
|
||||
* @author Feri
|
||||
* @date 2018年5月29日
|
||||
* @version V1.0
|
||||
* 文件工具类
|
||||
*/
|
||||
public class FileUtils {
|
||||
|
||||
//创建文件夹 一个月一个文件夹
|
||||
public static File createDir(String dir) {
|
||||
//子文件名称:201805 201806
|
||||
String month = new SimpleDateFormat("yyyyMM").format(new Date());
|
||||
File dir1 = new File(new File(dir).getParent(), "fmwimages");
|
||||
File dir2 = new File(dir1, month);
|
||||
if (!dir2.exists()) {
|
||||
dir2.mkdirs();
|
||||
}
|
||||
return dir2;
|
||||
}
|
||||
|
||||
//创建唯一名称
|
||||
public static String createFileName(String fn) {
|
||||
if (fn.length() > 30) {
|
||||
fn = fn.substring(fn.length() - 30);
|
||||
}
|
||||
return UUID.randomUUID().toString() + "_" + fn;
|
||||
}
|
||||
|
||||
|
||||
}
|
23
src/main/java/com/lovenav/utls/MD5Utils.java
Normal file
23
src/main/java/com/lovenav/utls/MD5Utils.java
Normal file
@@ -0,0 +1,23 @@
|
||||
package com.lovenav.utls;
|
||||
|
||||
import java.math.BigInteger;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
//MD5 摘要算法 签名或者简易加解密
|
||||
public class MD5Utils {
|
||||
public static String md5(String password) {
|
||||
try {
|
||||
//获取摘要对象
|
||||
MessageDigest md = MessageDigest.getInstance("MD5");
|
||||
//设置要签名的内容
|
||||
md.update(password.getBytes());
|
||||
//获取摘要结果
|
||||
return new BigInteger(1, md.digest()).toString(16);
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
41
src/main/java/com/lovenav/utls/RandomUtils.java
Normal file
41
src/main/java/com/lovenav/utls/RandomUtils.java
Normal file
@@ -0,0 +1,41 @@
|
||||
package com.lovenav.utls;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
|
||||
//随机数
|
||||
public class RandomUtils {
|
||||
//生成激活码
|
||||
public static String createActive() {
|
||||
// 生成4位随机数字+字母,
|
||||
String val = "";
|
||||
Random random = new Random();
|
||||
// 参数length,表示生成几位随机数
|
||||
for (int i = 0; i < 4; i++) {
|
||||
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
|
||||
// 输出字母还是数字
|
||||
if ("char".equalsIgnoreCase(charOrNum)) {
|
||||
// 输出是大写字母还是小写字母
|
||||
int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
|
||||
val += (char) (random.nextInt(26) + temp);
|
||||
} else if ("num".equalsIgnoreCase(charOrNum)) {
|
||||
val += String.valueOf(random.nextInt(10));
|
||||
}
|
||||
}
|
||||
return val;
|
||||
|
||||
|
||||
}
|
||||
|
||||
//设置时间戳
|
||||
public static String getTime() {
|
||||
return new SimpleDateFormat("yyyyMMddHHmmssSSS").format(Calendar.getInstance().getTime());
|
||||
}
|
||||
|
||||
//生成订单编号
|
||||
public static String createOrderId() {
|
||||
return getTime() + UUID.randomUUID().toString();
|
||||
}
|
||||
}
|
25
src/main/java/com/lovenav/utls/SessionUtils.java
Normal file
25
src/main/java/com/lovenav/utls/SessionUtils.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package com.lovenav.utls;
|
||||
|
||||
|
||||
import com.lovenav.entity.User;
|
||||
import org.springframework.web.context.request.RequestContextHolder;
|
||||
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
public class SessionUtils {
|
||||
private static final String USERKEY = "sessionUser";
|
||||
|
||||
public static HttpSession session() {
|
||||
ServletRequestAttributes attr = (ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
|
||||
return attr.getRequest().getSession(true); // true == allow create
|
||||
}
|
||||
|
||||
public static User getCurrentUserInfo() {
|
||||
return (User) session().getAttribute(USERKEY);
|
||||
}
|
||||
|
||||
public static void saveCurrentUserInfo(User User) {
|
||||
session().setAttribute(USERKEY, User);
|
||||
}
|
||||
}
|
18
src/main/java/com/lovenav/utls/StrUtils.java
Normal file
18
src/main/java/com/lovenav/utls/StrUtils.java
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.lovenav.utls;
|
||||
//字符串的各种校验
|
||||
public class StrUtils {
|
||||
|
||||
/**
|
||||
* 是否为空的校验
|
||||
* @return true 空 false 非空*/
|
||||
public static boolean empty(String...msg){
|
||||
boolean res = false;
|
||||
for(String s:msg){
|
||||
res = (s==null|| s.length()==0);
|
||||
if(res) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user