0
我想在數據庫中保存郵件。爲了測試它,我嘗試使用和不使用附件來生成一些測試MimeMessage對象。我添加附件像這樣:如何使用附件爲Java MimeMessage對象創建測試數據?
MimeMessage message = new MimeMessage(Session.getDefaultInstance(props, null));
Multipart multipart = new MimeMultiPart();
MimeBodyPart bodyPart = new MimeBodyPart();
bodyPart.attachFile("./files/test.txt");
bodyPart.setFileName("test.txt");
multipart.addBodyPart(bodyPart);
message.setContent(multipart);
message.saveChanges();
現在我想序列化此的MimeMessage其writeTo(OutputStream)
方法。這一呼籲導致FileNotFoundException異常:
java.io.FileNotFoundException: ./files/test.txt: open failed: ENOENT (No such file or directory)
這似乎是writeTo()
- 方法是搜索的附加文件。不應該通過我的測試數據生成器中的attachFile()
-call來將文件包含在MimeMessage-Object中嗎?我需要使用MimeMessage-Object來做些什麼才能夠像這樣序列化它?
這就是問題,這很好但很奇怪。爲什麼writeTo()拋出這個異常,而不是attachFile()? – Ansichtssache
我不知道。可能是因爲該文件在'writeTo(...)'之前從未真正被訪問過。一般來說,你不應該依賴這樣的事情。相反,在使用'file.exists()'的情況下,請自己檢查一下。 –