我正在嘗試在 javamail API 的幫助下發送兩個附件,但發件人正在接收附件作為轉發消息傳遞給發件人的郵件。此外,我無法在郵件中看到正文。我正在發送到 Outlook 電子郵件客戶端。其類似的附件將作為同一郵件中的單獨郵件發送,當我單擊郵件中的單獨郵件時,它會顯示附件。就像我在同一郵件中打開了另一封郵件一樣。誰能檢查我做錯了什么當我點擊內部郵件時,我現在得到了什么下面是代碼 deltaDf.coalesce(1) .write.mode("overwrite") .format("com.databricks.spark.csv") .option("header", "true") .save("/user/test/test1/Deltafile/") val deltahdfsname = fs.globStatus(new Path("/user/test/test1/Deltafile/part*"))(0).getPath().getName() val deltapath = new Path(fs.getName() + "/user/test/test1/Deltafile/" + deltahdfsname) val deltastream = fs.open(deltapath) val deltafileName = "delta.csv" val bodyText = "Hi All, <br> </br> Attached are the Concur Delta File and Exception Report <br> </br> please take the neccassory Action." val from = "[email protected]" val smtpHost = "xmail.xxxxx.com" val properties = System.getProperties properties.put("mail.smtp.host",smtpHost) properties.put("mail.from", from) properties.put("mail.smtp.auth", "false") properties.put("mail.smtp.port", "25") properties.put("mail.smtp.starttls.enable", "true") val deltaBodyPart = new MimeBodyPart() deltaBodyPart.setDataHandler(new DataHandler(new ByteArrayDataSource(deltastream, "text/csv"))) deltaBodyPart.setFileName(deltafileName) val multipart = new MimeMultipart() multipart.addBodyPart(deltaBodyPart) //multipart.addBodyPart(ExceptionBodyPart) val session = Session.getInstance(properties) var message = new MimeMessage(session) message.setFrom(new InternetAddress("[email protected]")) message.setRecipients(Message.RecipientType.TO, "[email protected]") message.setSubject("test message") message.setText("bodyText","text/html;charset=utf-8") message.setContent(multipart,"text/html;charset=utf-8") Transport.send(message)我只希望發件人應該在一個窗口中接收附件。
1 回答

aluckdog
TA貢獻1847條經驗 獲得超7個贊
錯了那么多...
在調用 setText 之后調用 setContent 只會覆蓋使用 setText 完成的操作。setText 方法只是一種在內部調用 setContent 的便捷方法。
使用 Multipart 對象調用 setContent 并告訴它使用 MIME 類型“text/html”意味著它畢竟不會是 multipart 對象。
您需要創建 MimeMultipart 對象并向其添加兩個 MimeBodyPart 對象,第一個包含主體文本,第二個包含附件。然后將 MimeMultipart 對象設置為消息的內容。
有關示例,請參閱JavaMail FAQ和JavaMail 示例程序。
添加回答
舉報
0/150
提交
取消