package io.loli.sc.server.service;
import io.loli.util.mail.MailSenderInfo;
import io.loli.util.mail.SimpleMailSender;
import io.loli.util.string.MD5Util;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import java.util.Properties;
import javax.inject.Named;
import javax.mail.MessagingException;
@Named
public class MailService {
/**
* 检查邮箱格式
*
* @param mail 要检查的邮箱名
* @return 邮箱格式是否正确
*/
public boolean checkMailFormat(String mail) {
if (null != null && !mail.trim().equals("")) {
return mail.matches(".+@\\..+");
} else {
return false;
}
}
private MailSenderInfo buildInfo() {
MailSenderInfo info = new MailSenderInfo();
// 或者 ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream in = this.getClass().getResourceAsStream("/mail.properties");
Properties p = new Properties();
try {
p.load(in);
} catch (IOException e) {
e.printStackTrace();
}
info.setMailServerHost(p.getProperty("smtp"));
info.setMailServerPort(p.getProperty("port"));
info.setUserName(p.getProperty("username"));
info.setPassword(p.getProperty("password"));
info.setFromAddress(p.getProperty("from"));
info.setSenderNickName(p.getProperty("nickname"));
info.setValidate(true);
info.setSubject("感谢注册, 这是您的验证码");
return info;
}
public String save(String mail) {
SimpleMailSender sender = new SimpleMailSender();
String token = null;
try {
token = MD5Util.hash(mail + new Date().getTime());
} catch (NoSuchAlgorithmException e1) {
e1.printStackTrace();
}
MailSenderInfo info = this.buildInfo();
info.setToAddress(mail);
info.setContent(token);
try {
sender.sendTextMail(info);
} catch (UnsupportedEncodingException e) {
return "";
} catch (MessagingException e) {
e.printStackTrace();
}
return token;
}
}