Skip to content

Commit 959b924

Browse files
tomas-sexenianBeta Bot
authored andcommitted
Cherry pick branch 'genexuslabs:email-parsing' into beta
1 parent 611b367 commit 959b924

File tree

1 file changed

+9
-36
lines changed

1 file changed

+9
-36
lines changed

gxmail/src/main/java/com/genexus/internet/POP3SessionJavaMail.java

Lines changed: 9 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -208,48 +208,21 @@ private MailRecipientCollection processRecipients(Message message, Message.Recip
208208
semicolons. This is a hack to consider the case where the list of addresses is separated with semicolons which produces
209209
an exception because the InternetAddress class used by jakarta mail to parse the addresses expects the list to be separated by commas
210210
*/
211-
try {
212-
String[] addresses = message.getHeader(rType.toString());
213-
if (addresses != null && addresses.length > 0) {
214-
for (String address : addresses) {
215-
String[] splitAddresses = address.split(";");
216-
for (String splitAddress : splitAddresses) {
211+
String[] addresses = message.getHeader(rType.toString());
212+
if (addresses != null && addresses.length > 0) {
213+
for (String address: addresses) {
214+
String[] splitAddresses = address.replace(";", ",").split(",");
215+
for (String splitAddress: splitAddresses) {
216+
try {
217217
InternetAddress ia = new InternetAddress(splitAddress);
218218
mailRecipient.addNew(ia.getPersonal(), ia.getAddress());
219+
} catch (AddressException ae) {
220+
logger.info("Invalid email address" + splitAddress);
219221
}
220222
}
221223
}
222-
return mailRecipient;
223-
224-
} catch (Exception originalException) {
225-
try {
226-
String[] headers = message.getHeader(rType.toString());
227-
if (headers != null) {
228-
for (String header : headers) {
229-
try {
230-
String normalized = header.replace(";", ",").trim();
231-
int garbageIndex = normalized.indexOf('(');
232-
if (garbageIndex != -1) {
233-
normalized = normalized.substring(0, garbageIndex).trim();
234-
}
235-
normalized = normalized.replaceAll(",\\s*$", "");
236-
237-
InternetAddress[] parsedAddresses = InternetAddress.parse(normalized, true);
238-
for (InternetAddress ia : parsedAddresses) {
239-
mailRecipient.addNew(ia.getPersonal(), ia.getAddress());
240-
}
241-
} catch (AddressException ae) {
242-
logger.error("Failed to parse email addresses from fallback header: " + header, ae);
243-
throw ae;
244-
}
245-
}
246-
}
247-
return mailRecipient;
248-
} catch (Exception fallbackException) {
249-
logger.error("Failed to extract email addresses.", fallbackException);
250-
throw new MessagingException("Unable to extract recipient addresses from headers", fallbackException);
251-
}
252224
}
225+
return mailRecipient;
253226
}
254227
}
255228

0 commit comments

Comments
 (0)