fix: enforce 3MB limit on total payload size (body + attachments) #646
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Previously, the SDK only considered attachment size when determining whether to use multipart/form-data encoding, ignoring the email body size. This caused requests to fail when the combined size of message body and attachments exceeded 3MB, even if attachments alone were under the limit.
Changes:
Add calculateTotalPayloadSize() function to calculate total request payload size
Update Messages.send() to use total payload size instead of just attachment size
Update Drafts.create() and Drafts.update() to use total payload size
Add comprehensive tests to verify the fix works correctly
Fixes: Requests failing when total payload exceeds 3MB despite small attachments
License
I confirm that this contribution is made under the terms of the MIT license and that I have the authority necessary to make this contribution on behalf of its copyright owner.