在我尝试使用MimeMessage的Java方法

时间:2017-02-01 08:40:01

标签: java javamail

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

您能解释一下上述代码不起作用的原因吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

包含短信和一个或多个附件的邮件必须是MultiPart邮件,因为这就是构建邮件的方式,以便接收邮件客户端理解它。

在您的简单示例中,您没有构建具有excel文件abc.xls作为附件的邮件;相反,您创建一个文本邮件并告诉客户端此邮件的正文应命名为abc.xls。最有可能的是,接收邮件客户端将提供一个内容为Fill the content:的文本文件,名称为abc.xls,名称为MimeMultiPart,作为其他空邮件的附件;打开假定的Excel文件可能会导致Excel导入此文本文件。

TL; DR:使用string y = GriView1.SelecteRows[0].Cells[5].Value.ToString(); 创建带附件的邮件。