【问题标题】:Handle exception in JavaMailSender在 JavaMailSender 中处理异常
【发布时间】:2018-06-14 07:42:02
【问题描述】:

我创建了简单的 MailService 来通过电子邮件发送内容。它可以工作,但我不知道如何处理异常(我的想法是在 HTML 视图中打印一些信息或在 404 页面上重定向)

邮件服务:

公共类邮件服务{ public final JavaMailSender emailSender; public void sendMail(String content, String to, Boolean isHtml, String subject, String path) { log.debug("发送电子邮件[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}", true, isHtml, to, subject, content); MimeMessage mimeMessage = emailSender.createMimeMessage(); 尝试 { MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, CharEncoding.UTF_8); message.setTo(to); message.setFrom("applica@applica.ai"); message.setSubject(主题); message.setText(内容,isHtml); 文件系统资源文件 = 新文件系统资源(路径); message.addAttachment(file.getFilename(), 文件); emailSender.send(mimeMessage); log.debug("发送邮件给用户'{}'", to); } 捕捉(异常 e){ log.warn("电子邮件无法发送给用户'{}'", to, e); } } }

在控制器中的使用:

尝试{
        mailService.sendMail(templateEngine.process("summary/mailTemplate", ctx), userInfo.getEmail(), true, "邮件标题", "附件标题);
        } 捕捉(IOException e){
            e.printStackTrace();
            返回“重定向:/404”;
        }

【问题讨论】:

    标签: java spring jakarta-mail


    【解决方案1】:

    我已经创建了处理邮件异常逻辑的服务

    公共类 MailSendingException 扩展异常 {
    
        公共邮件发送异常(){
        }
    
        公共 MailSendingException(字符串 s){
            超级(S);
        }
    }
    

    这个特定视图的控制器

    @控制器
    公共类errorMailController {
    
        @GetMapping("/errorMail")
        公共字符串错误邮件(){
            返回“错误邮件”;
        }
    }
    
    

    然后我在发送电子邮件的地方使用它

    尝试 { mailService.sendMail(templateEngine.process("summary/mailTemplate", ctx), userInfo.getEmail(), true, "邮件标题", "附件标题); } 捕捉(IOException e){ e.printStackTrace(); 返回“重定向:/404”; } 捕捉(MailSendingException mse){ 返回“重定向:/errorMail”; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2015-11-17
      • 2018-11-16
      • 1970-01-01
      • 2017-11-09
      相关资源
      最近更新 更多