thunderbird / thunderbird/thunderbird-android
Support SMTP CHUNKING extension
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
Sending large messages over SMTP is often slow due to the need to line-wrap content.
The CHUNKING extension (RFC 3030) allows for a BDAT command to replace the DATA command. This allows for messages to be sent as continual chunks of data rather than line-wrapped.
It is supported by Gmail and other providers.
Implementation of this will need to be aware of the PIPELINE extension (see #2338) and 8BITMIME extension.
We will need to pick an appropriate chunk size. This might involve investigation of what other providers use (the RFC uses 100000 but it's unclear whether this figure was arbitrarily chosen). It seems over-the-top to allow it to be configurable.
Obviously if the extension instead present we will need to use the normal data command.
Tests should cover use and lack of the extension, as well interaction with PIPELINING
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the SMTP implementation's DATA handling and reviewing the existing PIPELINE support referenced by issue #2338. Read RFC 3030 and determine how CHUNKING interacts with PIPELINING and 8BITMIME; done means using BDAT when advertised, falling back to DATA otherwise, with tests for both paths and their interaction.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100