为什么我的电子邮件方法总是以电子邮件本身作为附件发送电子邮件?
Why does my email method always send email with the email itself as attachment?
正在尝试发送带有 excel 附件和一些正文的电子邮件。
无论出于何种原因,我收到的电子邮件始终是一封电子邮件,其中包含我要作为附件发送的电子邮件,然后 excel 本身附加到附加的电子邮件中...
是否有一些 属性 可以禁用此行为?
public void sendEmailWithAttachment(EmailProperties properties) {
MimeMessage message = javaMailSender.createMimeMessage();
try {
message.setFrom(properties.getFrom());
message.setHeader("X-Mailer", properties.getHeader());
if (properties.getPriority() != null) {
message.setHeader("X-Priority", properties.getPriority().getValue());
}
InternetAddress[] toEmailArray = properties.getToAddresses().toArray(new InternetAddress[properties.getToAddresses().size()]);
message.setRecipients(javax.mail.Message.RecipientType.TO, toEmailArray);
message.setSubject(properties.getSubject());
message.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
if (StringUtils.isNotBlank(properties.getMessageText())) {
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setText(properties.getMessageText());
multipart.addBodyPart(mimeBodyPart);
}
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(properties.getContents(), properties.getContentType())));
mimeBodyPart.setFileName(properties.getFileName());
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
send(message);
} catch (Exception exc) {
logger.error("Error attempting to send email!", exc);
}
}
我弄明白了,如果电子邮件不包含正文,则发送的电子邮件会将电子邮件作为附件。一旦有正文,电子邮件看起来很正常,它显示正文,然后 excel 作为附件...这就是为什么...
正在尝试发送带有 excel 附件和一些正文的电子邮件。 无论出于何种原因,我收到的电子邮件始终是一封电子邮件,其中包含我要作为附件发送的电子邮件,然后 excel 本身附加到附加的电子邮件中...
是否有一些 属性 可以禁用此行为?
public void sendEmailWithAttachment(EmailProperties properties) {
MimeMessage message = javaMailSender.createMimeMessage();
try {
message.setFrom(properties.getFrom());
message.setHeader("X-Mailer", properties.getHeader());
if (properties.getPriority() != null) {
message.setHeader("X-Priority", properties.getPriority().getValue());
}
InternetAddress[] toEmailArray = properties.getToAddresses().toArray(new InternetAddress[properties.getToAddresses().size()]);
message.setRecipients(javax.mail.Message.RecipientType.TO, toEmailArray);
message.setSubject(properties.getSubject());
message.setSentDate(new Date());
Multipart multipart = new MimeMultipart();
if (StringUtils.isNotBlank(properties.getMessageText())) {
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setText(properties.getMessageText());
multipart.addBodyPart(mimeBodyPart);
}
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(properties.getContents(), properties.getContentType())));
mimeBodyPart.setFileName(properties.getFileName());
multipart.addBodyPart(mimeBodyPart);
message.setContent(multipart);
send(message);
} catch (Exception exc) {
logger.error("Error attempting to send email!", exc);
}
}
我弄明白了,如果电子邮件不包含正文,则发送的电子邮件会将电子邮件作为附件。一旦有正文,电子邮件看起来很正常,它显示正文,然后 excel 作为附件...这就是为什么...