30
30
import static java .nio .charset .StandardCharsets .UTF_8 ;
31
31
import static org .simplejavamail .converter .internal .mimemessage .MimeMessageHelper .produceMimeMessage ;
32
32
import static org .simplejavamail .internal .util .MiscUtil .extractCID ;
33
+ import static org .simplejavamail .internal .util .Preconditions .checkNonEmptyArgument ;
33
34
34
35
/**
35
36
* Utility to help convert {@link org.simplejavamail.email.Email} instances to other formats (MimeMessage, EML etc.) and vice versa.
@@ -47,7 +48,7 @@ private EmailConverter() {
47
48
public static Email mimeMessageToEmail (@ Nonnull final MimeMessage mimeMessage ) {
48
49
final Email email = new Email (false );
49
50
try {
50
- fillEmailFromMimeMessage (email , mimeMessage );
51
+ fillEmailFromMimeMessage (email , checkNonEmptyArgument ( mimeMessage , "mimeMessage" ) );
51
52
} catch (MessagingException | IOException e ) {
52
53
throw new EmailConverterException (format (EmailConverterException .PARSE_ERROR_MIMEMESSAGE , e .getMessage ()), e );
53
54
}
@@ -59,7 +60,8 @@ public static Email mimeMessageToEmail(@Nonnull final MimeMessage mimeMessage) {
59
60
*/
60
61
public static Email outlookMsgToEmail (@ Nonnull final String msgData ) {
61
62
final Email email = new Email (false );
62
- fillEmailFromOutlookMessage (email , OutlookMessageParser .parseOutlookMsg (msgData ));
63
+ OutlookMessage outlookMessage = OutlookMessageParser .parseOutlookMsg (checkNonEmptyArgument (msgData , "msgData" ));
64
+ fillEmailFromOutlookMessage (email , outlookMessage );
63
65
return email ;
64
66
}
65
67
@@ -68,7 +70,8 @@ public static Email outlookMsgToEmail(@Nonnull final String msgData) {
68
70
*/
69
71
public static Email outlookMsgToEmail (@ Nonnull final File msgfile ) {
70
72
final Email email = new Email (false );
71
- fillEmailFromOutlookMessage (email , OutlookMessageParser .parseOutlookMsg (msgfile ));
73
+ OutlookMessage outlookMessage = OutlookMessageParser .parseOutlookMsg (checkNonEmptyArgument (msgfile , "msgfile" ));
74
+ fillEmailFromOutlookMessage (email , outlookMessage );
72
75
return email ;
73
76
}
74
77
@@ -77,12 +80,15 @@ public static Email outlookMsgToEmail(@Nonnull final File msgfile) {
77
80
*/
78
81
public static Email outlookMsgToEmail (@ Nonnull final InputStream msgInputStream ) {
79
82
final Email email = new Email (false );
80
- fillEmailFromOutlookMessage (email , OutlookMessageParser .parseOutlookMsg (msgInputStream ));
83
+ OutlookMessage outlookMessage = OutlookMessageParser .parseOutlookMsg (checkNonEmptyArgument (msgInputStream , "msgInputStream" ));
84
+ fillEmailFromOutlookMessage (email , outlookMessage );
81
85
return email ;
82
86
}
83
87
84
88
private static void fillEmailFromMimeMessage (@ Nonnull final Email email , @ Nonnull final MimeMessage mimeMessage )
85
89
throws MessagingException , IOException {
90
+ checkNonEmptyArgument (email , "email" );
91
+ checkNonEmptyArgument (mimeMessage , "mimeMessage" );
86
92
final MimeMessageParser parser = new MimeMessageParser (mimeMessage ).parse ();
87
93
final InternetAddress from = parser .getFrom ();
88
94
email .setFromAddress (from .getPersonal (), from .getAddress ());
@@ -113,6 +119,8 @@ private static void fillEmailFromMimeMessage(@Nonnull final Email email, @Nonnul
113
119
}
114
120
115
121
private static void fillEmailFromOutlookMessage (@ Nonnull final Email email , @ Nonnull final OutlookMessage outlookMessage ) {
122
+ checkNonEmptyArgument (email , "email" );
123
+ checkNonEmptyArgument (outlookMessage , "outlookMessage" );
116
124
email .setFromAddress (outlookMessage .getFromName (), outlookMessage .getFromEmail ());
117
125
if (!MiscUtil .valueNullOrEmpty (outlookMessage .getReplyToEmail ())) {
118
126
email .setReplyToAddress (outlookMessage .getReplyToName (), outlookMessage .getReplyToEmail ());
@@ -145,15 +153,15 @@ private static void fillEmailFromOutlookMessage(@Nonnull final Email email, @Non
145
153
* @see #emailToMimeMessage(Email, Session)
146
154
*/
147
155
public static MimeMessage emailToMimeMessage (@ Nonnull final Email email ) {
148
- return emailToMimeMessage (email , createDummySession ());
156
+ return emailToMimeMessage (checkNonEmptyArgument ( email , "email" ) , createDummySession ());
149
157
}
150
158
151
159
/**
152
160
* Refer to {@link MimeMessageHelper#produceMimeMessage(Email, Session)}
153
161
*/
154
162
public static MimeMessage emailToMimeMessage (@ Nonnull final Email email , @ Nonnull final Session session ) {
155
163
try {
156
- return produceMimeMessage (email , session );
164
+ return produceMimeMessage (checkNonEmptyArgument ( email , "email" ), checkNonEmptyArgument ( session , "session" ) );
157
165
} catch (UnsupportedEncodingException | MessagingException e ) {
158
166
// this should never happen, so we don't acknowledge this exception (and simply bubble up)
159
167
throw new RuntimeException (e .getMessage (), e );
@@ -163,10 +171,10 @@ public static MimeMessage emailToMimeMessage(@Nonnull final Email email, @Nonnul
163
171
/**
164
172
* @return The result of {@link MimeMessage#writeTo(OutputStream)} which should be in the standard EML format.
165
173
*/
166
- public static String mimeMessageToEML (@ Nonnull final MimeMessage message ) {
174
+ public static String mimeMessageToEML (@ Nonnull final MimeMessage mimeMessage ) {
167
175
final ByteArrayOutputStream os = new ByteArrayOutputStream ();
168
176
try {
169
- message .writeTo (os );
177
+ checkNonEmptyArgument ( mimeMessage , "mimeMessage" ) .writeTo (os );
170
178
return os .toString (UTF_8 .name ());
171
179
} catch (IOException | MessagingException e ) {
172
180
// this should never happen, so we don't acknowledge this exception (and simply bubble up)
@@ -180,7 +188,7 @@ public static String mimeMessageToEML(@Nonnull final MimeMessage message) {
180
188
* @see #emailToMimeMessage(Email, Session)
181
189
*/
182
190
public static String emailToEML (@ Nonnull final Email email ) {
183
- return mimeMessageToEML (emailToMimeMessage (email ));
191
+ return mimeMessageToEML (emailToMimeMessage (checkNonEmptyArgument ( email , "email" ) ));
184
192
}
185
193
186
194
/**
@@ -189,13 +197,15 @@ public static String emailToEML(@Nonnull final Email email) {
189
197
* @see #emailToMimeMessage(Email, Session)
190
198
*/
191
199
public static MimeMessage emlToMimeMessage (@ Nonnull final String eml ) {
192
- return emlToMimeMessage (createDummySession (), eml );
200
+ return emlToMimeMessage (createDummySession (), checkNonEmptyArgument ( eml , "eml" ) );
193
201
}
194
202
195
203
/**
196
204
* Relies on JavaMail's native parser of EML data, {@link MimeMessage#MimeMessage(Session, InputStream)}.
197
205
*/
198
206
public static MimeMessage emlToMimeMessage (@ Nonnull final Session session , @ Nonnull final String eml ) {
207
+ checkNonEmptyArgument (session , "session" );
208
+ checkNonEmptyArgument (eml , "eml" );
199
209
try {
200
210
return new MimeMessage (session , new ByteArrayInputStream (eml .getBytes (UTF_8 )));
201
211
} catch (final MessagingException e ) {
@@ -208,7 +218,7 @@ public static MimeMessage emlToMimeMessage(@Nonnull final Session session, @Nonn
208
218
* #mimeMessageToEmail(MimeMessage)};
209
219
*/
210
220
public static Email emlToEmail (@ Nonnull final String eml ) {
211
- final MimeMessage mimeMessage = emlToMimeMessage (createDummySession (), eml );
221
+ final MimeMessage mimeMessage = emlToMimeMessage (createDummySession (), checkNonEmptyArgument ( eml , "eml" ) );
212
222
return mimeMessageToEmail (mimeMessage );
213
223
}
214
224
0 commit comments