当前位置: 首页 > 知识库问答 >
问题:

处理JavaMailSender中的异常

仲承福
2023-03-14

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

邮件服务:


public class MailService {

    public final JavaMailSender emailSender;


    public void sendMail(String content, String to, Boolean isHtml, String subject, String path) {

        log.debug("Send e-mail[multipart '{}' and html '{}'] to '{}' with subject '{}' and content={}",
                true, isHtml, to, subject, content);

        MimeMessage mimeMessage = emailSender.createMimeMessage();
        try {
            MimeMessageHelper message = new MimeMessageHelper(mimeMessage, true, CharEncoding.UTF_8);
            message.setTo(to);
            message.setFrom("applica@applica.ai");
            message.setSubject(subject);
            message.setText(content, isHtml);
            FileSystemResource file = new FileSystemResource(path);
            message.addAttachment(file.getFilename(), file);
            emailSender.send(mimeMessage);
            log.debug("Sent e-mail to User '{}'", to);

        } catch (Exception e) {
            log.warn("E-mail could not be sent to user '{}'", to, e);

        }
    }

}

在控制器中的用法:

        try {
        mailService.sendMail(templateEngine.process("summary/mailTemplate", ctx), userInfo.getEmail(), true, "Mail title", "attachment title);
        } catch (IOException e) {
            e.printStackTrace();
            return "redirect:/404";
        }

共有1个答案

陈正业
2023-03-14

我创建了一个服务来处理邮件异常的逻辑

public class MailSendingException extends Exception {

    public MailSendingException() {
    }

    public MailSendingException(String s) {
        super(s);
    }
}

和控制器

@Controller
public class errorMailController {

    @GetMapping("/errorMail")
    public String errorMail() {
        return "errorMail";
    }
}

然后我把它用在发邮件的地方

 try {
        mailService.sendMail(templateEngine.process("summary/mailTemplate", ctx), userInfo.getEmail(), true, "Mail title", "attachment title);
        } catch (IOException e) {
            e.printStackTrace();
            return "redirect:/404";
        }
         catch (MailSendingException mse) {
            return "redirect:/errorMail";
        }
 类似资料:
  • 我主要是为技术精明的人编写一个小工具,例如程序员、工程师等,因为这些工具通常是快速的,随着时间的推移,我知道会有未处理的异常,用户不会介意。我希望用户能够向我发送回溯,这样我就可以检查发生了什么,并可能改进应用程序。 我通常做wxPython编程,但我最近做了一些Java。我已经将

  • 问题内容: 我有一个ScheduledThreadPoolExecutor,似乎正在吃异常。如果提交的Runnable引发异常,我希望我的执行者服务通知我。 例如,我希望下面的代码至少输出IndexArrayOutOfBoundsException的stackTrace 作为附带问题。有没有办法为ScheduledThreadPoolExecutor编写常规try catch块? ////////

  • 本文向大家介绍Java 中的异常处理?相关面试题,主要包含被问及Java 中的异常处理?时的应答技巧和注意事项,需要的朋友参考一下  Java异常类层次结构图 在 Java 中,所有的异常都有一个共同的祖先java.lang包中的 Throwable类。Throwable: 有两个重要的子类:Exception(异常) 和 Error(错误) ,二者都是 Java 异常处理的重要子类,各自都包含大

  • 我需要在我的应用程序中将异常显示为toast消息,但以下代码不起作用,我如何修改它? 10-14 23:41:21.637 14498-14498/com.example.username.weddingplanningE/SQLiteDatabase︰错误插入name=dandroid.database.sqlite.SQLiteConstraintExc0019:列名称不是唯一的(代码19)在

  • 当我使用JavaMailSender发送带有附件的电子邮件时,它总是失败,并引发以下异常: 这是我的密码

  • web.xml 应用程序-servlet.xml context.xml(在tomcat conf文件夹中) 谢谢你的建议和帮助。