簡體   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