Speeding Up JavaMail Sending
It looks like you are sending almost the same message multiple times. I see at least two possible speed improvements.


The most likely bottleneck is the actual email sending process, which is outside of your program, an overhead for every single message sent. You could reduce that overhead by putting multiple recipients in BCC, if possible. As you noted in comments, ISPs might consider messages with a large number of recipients. If you stay within reasonable limits, and you're not in fact spamming, you can hopefully convince them to allow it. (This did happen to me once, and my ISP was reasonable.)
Another minor improvement can be, instead of creating a new message from scratch for each recipient, you could create a single message object once, and replace the recipient and other variable parts in it.


The code is too compactly written. I suggest to use your IDE to reformat it nicely.

The try block covers a lot of code. It seems you could move some code of it. That would be better, to clarify the sensitive parts where something might go wrong.

Catching Exception is not recommended. It's recommended to catch the most specific exception that might be thrown.

It's a bit strange to catch OutOfMemoryError. This is not something a program can recover from gracefully. You don't share the piece of code handling the exception, but I doubt it would be much different from not handling that at all.