|  |  |  | 
|---|
|  |  |  | import com.alibaba.fastjson.JSON; | 
|---|
|  |  |  | import com.vincent.rsf.common.utils.Utils; | 
|---|
|  |  |  | import com.vincent.rsf.framework.common.Cools; | 
|---|
|  |  |  | import com.vincent.rsf.server.system.enums.EmailType; | 
|---|
|  |  |  | import lombok.extern.slf4j.Slf4j; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Value; | 
|---|
|  |  |  | 
|---|
|  |  |  | import javax.mail.MessagingException; | 
|---|
|  |  |  | import javax.mail.internet.MimeMessage; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | import java.util.regex.Matcher; | 
|---|
|  |  |  | import java.util.regex.Pattern; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Service | 
|---|
|  |  |  | public class EmailService { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static final String EMAIL_REGEX = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Value("${spring.mail.username}") | 
|---|
|  |  |  | private String from; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final static String TEMPLATE = "Your verification code is: ${code}"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | @SuppressWarnings("all") | 
|---|
|  |  |  | private JavaMailSender mailSender; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public boolean sendEmail(String to, String subject, Map<String, Object> param) { | 
|---|
|  |  |  | public boolean sendEmail(String to, EmailType emailType, Map<String, Object> param) { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | String content = "Your verification code is: ${code}"; | 
|---|
|  |  |  | String subject = emailType.subject; | 
|---|
|  |  |  | String content = emailType.content; | 
|---|
|  |  |  | if (!Cools.isEmpty(param) && !param.isEmpty()) { | 
|---|
|  |  |  | content = Utils.processTemplate(content, param); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public boolean isValid(String email) { | 
|---|
|  |  |  | if (Cools.isEmpty(email)) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Pattern pattern = Pattern.compile(EMAIL_REGEX); | 
|---|
|  |  |  | Matcher matcher = pattern.matcher(email); | 
|---|
|  |  |  | return matcher.matches(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|