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
您能解释一下上述代码不起作用的原因吗?
提前致谢。
答案 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();
创建带附件的邮件。