[尝试使用JavaMail发送带有附件的电子邮件。如果您通过浏览器查看该字母,则一切正常。如果通过Outlook查看该字母,则该字母以扩展名为.dat的文件形式出现。告诉我是什么问题?如何解决?
我的代码
public class MailMail{
private JavaMailSender mailSender;
private SimpleMailMessage simpleMailMessage;
public void setSimpleMailMessage(SimpleMailMessage simpleMailMessage) {
this.simpleMailMessage = simpleMailMessage;
}
public void setMailSender(JavaMailSender mailSender) {
this.mailSender = mailSender;
}
void sendMAil4() throws EmailException {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath("C:\\Users\\home\\Desktop\\отправка\\file.xlsx");
attachment.setDisposition(EmailAttachment.ATTACHMENT);
attachment.setDescription("Picture of John");
attachment.setName("John");
MultiPartEmail email = new MultiPartEmail();
email.setHostName("smtp.yandex.ru");
email.setSmtpPort(465);
email.setAuthenticator(new DefaultAuthenticator("[email protected]", "12345678"));
email.setFrom("[email protected]");
email.setSubject("TestMail");
email.setMsg("This is a test mail ... :-)");
email.addTo("[email protected]");
email.attach(attachment);
email.send();
}
}
[这通常在较旧的电子邮件客户端(例如Outlook 2007和2010)使用旧的RFC2047标准处理附件的文件名时发生。文件名中的特殊字符将不会被识别,附件将使用。bin或。dat扩展名重命名。较新的RFC2231标准要求附件文件名中的任何空格和特殊字符都应转换为它们的MIME等效项。您可以升级Outlook客户端,也可以确保文件名不包含空格或特殊字符。