You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Guidance on sending emails to many subusers (100+) #623
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.
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:
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.
Activity
leothekim commentedon May 21, 2020
Definitely very curious how this use case is handled!
childish-sambino commentedon May 21, 2020
If all that's needed it to be able to set the
On-Behalf-Ofheader at the request-level, then it's a pretty simple change to makeSendGrid.api()merge the request headers with the client-level request headers. Then you could just do something like:Would this work for your usecase?
arkitex commentedon May 21, 2020
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
childish-sambino commentedon May 22, 2020
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 callSendGrid.api()instead.