Spring Boot-无法发送带有附件的电子邮件

时间:2019-01-24 13:43:03

标签: spring spring-boot

我正在尝试发送带有附件的电子邮件,但该电子邮件缺少附件。我尝试将classpath资源和文件放置在路径中。两者都不起作用。下面是我正在使用的代码:

//Service Impl class



 @Autowired
        JavaMailSender emailSender;

  private void sendEmail(){
         MimeMessage message = emailSender.createMimeMessage();
                                 MimeMessageHelper helper = new MimeMessageHelper(message, true);

                                 helper.setSubject("Attachment email");
                                 helper.setText("Test email for Spring boot email service");
                                 helper.setTo("sample@company.com");
                                 helper.setFrom("noreply@company.com");

                                //using as class path resource
     //helper.addAttachment("Resume.pdf", new ClassPathResource("resume.pdf"));


                                    FileSystemResource file = new FileSystemResource("C:\\test\resume.pdf");
                                    helper.addAttachment(file.getFilename(), file);
                                 emailSender.send(message);
        }

电子邮件配置:

spring.mail.host=smtp.company.com
spring.mail.properties.mail.smtp.auth=false
spring.mail.properties.mail.smtp.starttls.enable=false
spring.mail.default.from.address=noeply@company.com

Spring Boot版本:

Spring Boot 2.0.2

1 个答案:

答案 0 :(得分:0)

我的猜测是您传递的路径名不是Java的正确路径名。反斜杠用于转义Java中的字符。在Java中,必须使用正斜杠作为路径分隔符。在任何情况下,硬编码文件路径都是一个坏习惯,但是您可以按如下所示更改FileSystemResource,它应该可以工作。

  

FileSystemResource文件=新的FileSystemResource(“ C:/test/resume.pdf”);