skyouc
2025-03-29 85b8e7ba6c4d0d780a7f90360150f2bd955eb874
rsf-server/src/main/java/com/vincent/rsf/server/common/service/EmailService.java
@@ -3,6 +3,7 @@
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;
@@ -14,23 +15,26 @@
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);
        }
@@ -63,4 +67,13 @@
        }
    }
    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();
    }
}