File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed
main/java/org/simplejavamail/converter/internal/mimemessage
test/java/org/simplejavamail/converter/internal/mimemessage Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change 11package org .simplejavamail .converter .internal .mimemessage ;
22
3+ import javax .mail .internet .ParameterList ;
34import net .markenwerk .utils .mail .dkim .DkimMessage ;
45import net .markenwerk .utils .mail .dkim .DkimSigner ;
56import org .simplejavamail .email .AttachmentResource ;
@@ -260,7 +261,10 @@ private static BodyPart getBodyPartFromDatasource(final AttachmentResource attac
260261 attachmentPart .setDataHandler (new DataHandler (new NamedDataSource (fileName , attachmentResource .getDataSource ())));
261262 attachmentPart .setFileName (fileName );
262263 final String contentType = attachmentResource .getDataSource ().getContentType ();
263- attachmentPart .setHeader ("Content-Type" , contentType + "; filename=" + fileName + "; name=" + resourceName );
264+ ParameterList pl = new ParameterList ();
265+ pl .set ("filename" , fileName );
266+ pl .set ("name" , resourceName );
267+ attachmentPart .setHeader ("Content-Type" , contentType + pl .toString ());
264268 attachmentPart .setHeader ("Content-ID" , format ("<%s>" , resourceName ));
265269 attachmentPart .setDisposition (dispositionType );
266270 return attachmentPart ;
Original file line number Diff line number Diff line change 11package org .simplejavamail .converter .internal .mimemessage ;
22
3+ import javax .mail .BodyPart ;
4+ import javax .mail .MessagingException ;
5+ import javax .mail .internet .ContentType ;
6+ import javax .mail .internet .MimeMessage ;
7+ import javax .mail .internet .MimeMultipart ;
38import org .assertj .core .api .ThrowableAssert ;
49import org .junit .Test ;
510import org .junit .runner .RunWith ;
@@ -131,4 +136,17 @@ public void call() throws Throwable {
131136 })
132137 .hasMessage (MimeMessageParseException .ERROR_SIGNING_DKIM_INVALID_DOMAINKEY );
133138 }
139+
140+ @ Test
141+ public void filenameWithSpaceEncoding () throws IOException , MessagingException {
142+ final String fileName = "file name.txt" ;
143+ final Email email = EmailHelper .createDummyEmailBuilder (true , true , false )
144+ .clearAttachments ().withAttachment (fileName , "abc" .getBytes (),
145+ "text/plain" ).buildEmail ();
146+ final MimeMessage mimeMessage = EmailConverter .emailToMimeMessage (email );
147+ final BodyPart bodyPart = ((MimeMultipart ) mimeMessage .getContent ()).getBodyPart (1 );
148+ ContentType ct = new ContentType (bodyPart .getHeader ("Content-Type" )[0 ]);
149+ assertThat (ct .getParameter ("filename" )).isEqualTo (fileName );
150+ assertThat (bodyPart .getFileName ()).isEqualTo (fileName );
151+ }
134152}
You can’t perform that action at this time.
0 commit comments