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 1
1
package org .simplejavamail .converter .internal .mimemessage ;
2
2
3
+ import javax .mail .internet .ParameterList ;
3
4
import net .markenwerk .utils .mail .dkim .DkimMessage ;
4
5
import net .markenwerk .utils .mail .dkim .DkimSigner ;
5
6
import org .simplejavamail .email .AttachmentResource ;
@@ -260,7 +261,10 @@ private static BodyPart getBodyPartFromDatasource(final AttachmentResource attac
260
261
attachmentPart .setDataHandler (new DataHandler (new NamedDataSource (fileName , attachmentResource .getDataSource ())));
261
262
attachmentPart .setFileName (fileName );
262
263
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 ());
264
268
attachmentPart .setHeader ("Content-ID" , format ("<%s>" , resourceName ));
265
269
attachmentPart .setDisposition (dispositionType );
266
270
return attachmentPart ;
Original file line number Diff line number Diff line change 1
1
package org .simplejavamail .converter .internal .mimemessage ;
2
2
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 ;
3
8
import org .assertj .core .api .ThrowableAssert ;
4
9
import org .junit .Test ;
5
10
import org .junit .runner .RunWith ;
@@ -131,4 +136,17 @@ public void call() throws Throwable {
131
136
})
132
137
.hasMessage (MimeMessageParseException .ERROR_SIGNING_DKIM_INVALID_DOMAINKEY );
133
138
}
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
+ }
134
152
}
You can’t perform that action at this time.
0 commit comments