繁体   English   中英

我尝试在MimeMessage的Java方法中发送带有主体内容附件的电子邮件时,主体内容未发送

[英]Body content is not being sent while I am trying to send an email with attachment with main body content in Java methods of MimeMessage

Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(fromEmail));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
message.setFileName("abc.xls");
message.setText("Fill the content:");

上面是我正在使用的代码的主要部分。 当我使用上面的代码时,在发送的邮件中看不到主体内容“填充内容”。 还有其他帖子和评论,其中包含一段有效的代码,可以使用MimeMultipart和MimeBodyPart类来解决。 但是没有任何地方可以解释上述代码为何无法正常工作的原因。

我还知道,使用setFileName不足以添加文件中存在的内容,它仅用于添加不包含内容的附件。

注意:我正在使用javax.mail-1.5.0.jar

您能否解释上述代码无法正常工作的原因?

提前致谢。

包含文本消息和一个或多个附件的邮件必须是MultiPart邮件,因为那样构造邮件就可以使接收邮件的客户端理解它。

在您的简单示例中,您将不构建具有excel文件abc.xls作为附件的邮件。 而是创建一个文本邮件,并告诉客户端该邮件的主体应命名为abc.xls 接收邮件客户端很可能会提供一个文本文件,其中包含内容Fill the content: abc.xls不恰当地命名为abc.xls ,否则将是空邮件的附件; 打开假定的Excel文件可能会导致Excel导入此文本文件。

TL; DR:使用MimeMultiPart创建带有附件的邮件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM