Guidance on sending emails to many subusers (100+)
Issue Summary
I'm trying to use this library to send emails on behalf of many subusers - in the hundreds, if not thousands. It appears that the primary pattern is to use new Sendgrid(apiKey) in order to send - but that creates a FixedThreadPool with 8 threads. If I wish to send emails to even 10 subusers, this means I'll have 10 FixedThreadPools with 8 threads each - not desirable.
Is there any guidance on how to appropriately use this library for the above use-case? It looks like we could implemented SendgridAPI, but I'm hoping to avoid that if possible.
I'd use on-behalf-of, but that is not supported for mail.send.
Technical details:
- sendgrid-java version: 4.4.8
Definitely very curious how this use case is handled!
If all that's needed it to be able to set the On-Behalf-Of header at the request-level, then it's a pretty simple change to make SendGrid.api() merge the request headers with the client-level request headers. Then you could just do something like:
...
request.addHeader("On-Behalf-Of", "some-user");
Response response = sg.api(request);
...
Would this work for your usecase?
I'm trying to actually send emails, and the Sendgrid docs claim that On-Behalf-Of is not supported for mail.send :(: https://sendgrid.api-docs.io/v3.0/how-to-use-the-sendgrid-v3-api/on-behalf-of
Ah, TIL. We could update the library to lazily-create the fixed thread pool, so it would be created on the first call to SendGrid.attempt, which you don't have to use and could just call SendGrid.api() instead.