Our company does work environment surveys, and these surveys are filled in online. All participants are sent a link to their survey in an email (personal code included).
You could try using the Bcc:
header field (grouped by domain) to specify recipients. That way, the mail server only gets one message, which it copies to all the addresses mentioned. That way, the mail server isn't flooded with traffic from your server; it's flooded with its own traffic.
Another thing I've tried is adding the following headers to outgoing emails:
From: [NAME] <[VALID EMAIL]>
Organization: [YOUR COMPANY]
Abuse-Reports-To: [VALID EMAIL]
Complaints-To: [VALID EMAIL]
Precedence: bulk
These headers, while generally not noticed by the user, can help give the spam filter peace of mind (not to anthropomorphize) in that it knows where the email came from, the sender knows it's being sent to many people, and that, if there's a problem, who to contact. If the spam filter were a human, this would be the equivalent of making the email sound official (using company stationery, printed envelope with the company logo, etc.).
It also helps to have an accurate Date:
header.