メールに複数のファイルを添付しようとしています。
テキストファイルの最初の行が欠落しているという事実を除けば、正常に機能しています。
注: 読みやすくするために、すべてのエラー処理を削除しました。また、To / From / Subject などの正しい設定を前提としています (メールは完全に送信されます - 添付ファイルの問題は別として)。
まず、私が使用しているコードは次のとおりです。
MimeMessage oMessage = new MimeMessage(oSession);
// Create a multipart message
Multipart oMultiPart = new MimeMultipart();
// Create the message part
BodyPart oMessageBodyPart = new MimeBodyPart();
// Set the Message Body
String strFormat = oEmail.getFormat();
String strBody = oEmail.getBody();
oMessageBodyPart.setContent(strBody,strFormat);
oMultiPart.addBodyPart(oMessageBodyPart);
List<String> oAttachmentNames = oEmail.getAttachments();
for (String strAttachmentName : oAttachmentNames)
{
// Parse file from URL
URL oURL = new URL(strAttachmentName);
MimeBodyPart oAttachmentPart = new MimeBodyPart(oURL.openStream());
oAttachmentPart.setFileName(strAttachmentName);
oMultiPart.addBodyPart(oAttachmentPart);
}
// Add all contents (body + attachments)
oMessage.setContent(oMultiPart);
ちなみにテキストファイルは以下の通りです。
This is the Test file
(intentional line break)
Line 1
Line 2
デバッグ出力は次のとおりです。
Content-Type: multipart/mixed;
boundary="----=_Part_0_29194312.1354442889470"
------=_Part_0_29194312.1354442889470
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Plain Text Email.
------=_Part_0_29194312.1354442889470
This is the Test file
Content-Disposition: attachment;
filename="http://mysite.com/temp/Test.txt"
Line 1
Line 2
------=_Part_0_29194312.1354442889470--
.
250 OK id=1Tf6T5-0004E9-Nn
QUIT