我正在尝试发送带有附件的电子邮件,但该电子邮件缺少附件。我尝试将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
答案 0 :(得分:0)
我的猜测是您传递的路径名不是Java的正确路径名。反斜杠用于转义Java中的字符。在Java中,必须使用正斜杠作为路径分隔符。在任何情况下,硬编码文件路径都是一个坏习惯,但是您可以按如下所示更改FileSystemResource,它应该可以工作。
FileSystemResource文件=新的FileSystemResource(“ C:/test/resume.pdf”);