Complete Send In Background
|Complete Send In Background function to use Outbox to send messages|
|Status note||up for grabs|
|Directly Responsible Individual||Mark Banner|
|Product marketing lead||`|
Stage 1: Definition
1. Feature overview
Send in Background is intended to remove the interrupt of the user between clicking on send and having a visual sudo-block to be able to continue using and processing email.
2. Users & use cases
When a user hits send, we currently display a progress dialog whilst the send is in progress and the file is saved to the sent folder.
With send in background we would save the email to the local outbox, remove the compose window from the display and send the email.
This allows the user to continue working with email, whilst still sending the email.
If there is an error whilst sending the email, then Thunderbird can decide what to do, whether to try again later, or notify the user, or a mixture of both.
One area we have to be careful with is shutdown - if Thunderbird is in the process of sending an email, we shouldn't abort that - but allow it to be finished (whilst also informing the user). Additionally, if emails are waiting to be sent, we should potentially alert about those as well.
- Save email locally
- Send email in the background without interrupting user
- Attempt to re-send email without user interaction if the send fails
- Gracefully handle persistent failures
Stage 2: Design
5. Functional specification
6. User experience design
Stage 3: Planning
7. Implementation plan
At its heart, this feature uses the send later functionality to operate. When enabled, emails are saved in the Outbox (in Local Folders) without the "Queued" flag set on them. nsMsgSendLater then detects the presence of the email and sends it in the background, with status reporting to the activity manager.
Currently the basic implementation works, but error and edge cases aren't correctly handled. For testing purposes mailnews.sendInBackground can be set to true.
bug 511079 is the tracking bug with dependencies showing the current issues.
Quality Assurance review
Stage 4: Development
Stage 5: Release
10. Landing criteria
|Theme / Goal||`|
Team status notes