Kaynağa Gözat

发送垃圾邮件bug对应

zdm 6 yıl önce
ebeveyn
işleme
cc8778a1e0

+ 13 - 13
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/open/register/RegisterEndpoint.java

@ -161,12 +161,6 @@ public class RegisterEndpoint extends EnvelopRestEndpoint {
        if (!ValidateUtil.isValidEmail(email)) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.EMAIL_IS_NOT_FORMAT), Envelop.class);
        }
        //建立邮件消息
        SimpleMailMessage mainMessage = new SimpleMailMessage();
        //发送者
        mainMessage.setFrom(username);
        //接收者
        mainMessage.setTo(email);
        //发送的标题
        //查找发送模板
        BaseEmailTemplateConfigDO emailTemplateConfigDO = emailTemplateConfigDao.findByTemplateName("租户注册-验证码");
@ -186,12 +180,14 @@ public class RegisterEndpoint extends EnvelopRestEndpoint {
                    .append(emailTemplateConfigDO.getKeyword5()).append(emailTemplateConfigDO.getUrl())
                    .append("\n").append("\n").append(emailTemplateConfigDO.getRemark());
        }
        mainMessage.setSubject("租户注册验证码");
        mainMessage.setText(content.toString());
        jms.send(mainMessage);
        String subject = "租户注册验证码";
        boolean blo = SendEmailUtils.sendMessage(email, content.toString(), subject);
        redisTemplate.opsForValue().set(redisPrefix + email, captcha, 10, TimeUnit.MINUTES);
        return success("发送成功");
        if (blo) {
            return success("success", true);
        } else {
            return failed("failed", ObjEnvelop.class);
        }
    }
    @PostMapping(value = "/testSendEmailMethod")
@ -212,11 +208,15 @@ public class RegisterEndpoint extends EnvelopRestEndpoint {
            StringBuilder content = new StringBuilder("您好!\n感谢您注册健康之路城市i健康。\n");
            content.append("您的验证码是:").append(captcha);
            content.append("。 (验证码10分钟内有效)");
            SendEmailUtils.mimeMessage(email, content.toString(), subject);
            boolean blo = SendEmailUtils.sendMessage(email, content.toString(), subject);
            if (blo) {
                return success("success", true);
            } else {
                return failed("failed", ObjEnvelop.class);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return failed(e.getMessage(), ObjEnvelop.class);
        }
        return success("success", true);
    }
}

+ 3 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java

@ -7,6 +7,7 @@ import com.yihu.jw.base.service.saas.SaasService;
import com.yihu.jw.base.service.saas.SaasTypeDictService;
import com.yihu.jw.base.service.user.UserService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.base.util.SendEmailUtils;
import com.yihu.jw.base.util.ValidateUtil;
import com.yihu.jw.entity.base.module.ModuleDO;
import com.yihu.jw.entity.base.module.SaasModuleDO;
@ -296,14 +297,6 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            if (null == baseEmailTemplateConfigDO) {
                failed(status.name() + "邮件模板不存在!");
            }
            //建立邮件消息
            SimpleMailMessage mainMessage = new SimpleMailMessage();
            //发送者
            mainMessage.setFrom(username);
            //接收者
            mainMessage.setTo(saasDO.getEmail());
            //发送的标题
            mainMessage.setSubject(baseEmailTemplateConfigDO.getTemplateName());
            //发送的内容
            StringBuffer content = new StringBuffer();
            content.append(baseEmailTemplateConfigDO.getFirst() + "\n").append(baseEmailTemplateConfigDO.getKeyword1() + "\n");
@ -319,8 +312,8 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            }
            content.append(baseEmailTemplateConfigDO.getKeyword5() + baseEmailTemplateConfigDO.getUrl() + "\n");
            content.append(baseEmailTemplateConfigDO.getRemark());
            mainMessage.setText(content.toString());
            jms.send(mainMessage);
            boolean blo = SendEmailUtils.sendMessage(saasDO.getEmail(), content.toString(), baseEmailTemplateConfigDO.getTemplateName());
            System.out.println("sendEmail--"+blo);
        } catch (MailException e) {
            e.printStackTrace();
            return failed("邮件发送失败!"+e.getMessage(),ObjEnvelop.class);

+ 3 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasService.java

@ -14,6 +14,7 @@ import com.yihu.jw.base.dao.system.SystemDictEntryDao;
import com.yihu.jw.base.dao.user.UserDao;
import com.yihu.jw.base.dao.user.UserRoleDao;
import com.yihu.jw.base.service.dict.DictHospitalDeptService;
import com.yihu.jw.base.util.SendEmailUtils;
import com.yihu.jw.entity.base.dict.*;
import com.yihu.jw.entity.base.module.ModuleDO;
import com.yihu.jw.entity.base.module.SaasModuleDO;
@ -154,14 +155,6 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
            if (null == baseEmailTemplateConfigDO) {
                return;
            }
            //建立邮件消息
            SimpleMailMessage mainMessage = new SimpleMailMessage();
            //发送者
            mainMessage.setFrom(username);
            //接收者
            mainMessage.setTo(saasDO.getEmail());
            //发送的标题
            mainMessage.setSubject(baseEmailTemplateConfigDO.getTemplateName());
            //发送的内容
            StringBuffer content = new StringBuffer();
            content.append(baseEmailTemplateConfigDO.getFirst() + "\n").append(baseEmailTemplateConfigDO.getKeyword1() + "\n");
@ -177,8 +170,8 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
            }
            content.append(baseEmailTemplateConfigDO.getKeyword5() + baseEmailTemplateConfigDO.getUrl() + "\n");
            content.append(baseEmailTemplateConfigDO.getRemark());
            mainMessage.setText(content.toString());
            jms.send(mainMessage);
            boolean blo = SendEmailUtils.sendMessage(saasDO.getEmail(), content.toString(), baseEmailTemplateConfigDO.getTemplateName());
            System.out.println("sendEmail--"+blo);
        } catch (MailException e) {
            e.printStackTrace();
        }

+ 54 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/util/SendEmailUtils.java

@ -1,5 +1,6 @@
package com.yihu.jw.base.util;
import com.sun.mail.util.MailSSLSocketFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@ -91,6 +92,58 @@ public class SendEmailUtils {
            return  true;
    }
    public static boolean  sendMessage(String email,String content,String subject){
        // 配置
        Properties prop=new Properties();
        // 设置邮件服务器主机名,这里是163
        prop.put("mail.host",host );
        // 发送邮件协议名称
        prop.put("mail.transport.protocol",smtp);
        // 是否认证
        prop.put("mail.smtp.auth", auth);
        try {
            // SSL加密
            MailSSLSocketFactory sf = null;
            sf = new MailSSLSocketFactory();
            // 设置信任所有的主机
            sf.setTrustAllHosts(true);
            prop.put("mail.smtp.ssl.enable", true);
            prop.put("mail.smtp.ssl.socketFactory", sf);
            // 创建会话对象
            Session session = Session.getInstance(prop, new Authenticator() {
                // 认证信息,需要提供"用户账号","授权码"
                public PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });
            // 是否打印出debug信息
//            session.setDebug(true);
            // 创建邮件
            Message message = new MimeMessage(session);
            // 邮件发送者
            message.setFrom(new InternetAddress(username));
            // 邮件接受者
            message.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
            // 邮件主题
            message.setSubject(subject);
            message.setContent(content, "text/html;charset=UTF-8");
            // Transport.send(message);
            // 邮件发送
            Transport transport = session.getTransport();
            transport.connect();
            transport.sendMessage(message, message.getAllRecipients());
            transport.close();
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
    @Value("${spring.mail.username}")
    public void setUsername(String username) {
@ -129,4 +182,5 @@ public class SendEmailUtils {
    public void setPassword(String password) {
        SendEmailUtils.password = password;
    }
}