User:Clarkbw/Return Receipt

From MozillaWiki
Jump to: navigation, search

This page is a design scratch intended to fix the situation with return receipts. There is a disambiguation problem here as stated in bug 328341 where return receipts are considered to be many things. A technical return receipt is an SMTP extension that gives notification of deliver; this is not what most people think it is. An MDN is a return receipt that indicates the receiver has seen the message; of course the receiver is able to control sending of the receipt.

For Thunderbird's purposely we should be thinking of "Return Receipts" as MDNs and not have the separation which will confuse people. If there is still a desire for the actual return receipt its functionality should be moved into an extension.

Receiving a Return Receipt Request

Viewing Message with Return Receipt Request

+--------------------------------------------------------------------------------+ 
| $SENDER requests Return Receipt for this Message         (( Send )) ( Ignore ) |
|                                                                                |
| { Always send to $SENDER }           { Never send return receipts to $SENDER } |
+================================================================================+
{{ message }}

mockups

After a Return Receipt has been Sent

Nothing is shown in the short message headers after the receipt has been sent.

{{ short message headers }}
Return Receipt: Sent $TIME $DATE  { more details }
{{ message body }}

However in the full message headers the return receipt message is shown at the end. If this sender was set to receive return receipts automatically then show this message.

+-----------------------------------------------------------------------------+ 
| {{ full message headers }}                                                  |
| Return Receipt: Sent $TIME $DATE                                 [ resend ] |
| { Do not send $SENDER return receipts automatically }                       |
+=============================================================================+
{{ message body }}

If this sender was not set to receive return receipts automatically then show this message.

+-----------------------------------------------------------------------------+ 
| {{ full message headers }}                                                  |
| Return Receipt: Sent $TIME $DATE                                 [ resend ] |
| { Always send $SENDER return receipts automatically }                       |
+=============================================================================+
{{ message body }}

old mockups

After Refusing to send a Return Receipt

Nothing is shown in the short message headers after the receipt has been refused.

{{ short message headers }}
Return Receipt: Ignored $TIME $DATE  { more details }
{{ message body }}

However in the full message headers the return receipt message is shown at the end. If this sender was set to receive return receipts automatically then show this message.

+-----------------------------------------------------------------------------+ 
| {{ full message headers }}                                                  |
| Return Receipt: Ignored $TIME $DATE                                [ send ] |
| { Do not send $SENDER return receipts automatically }                       |
+=============================================================================+
{{ message body }}

If this sender was not set to receive return receipts automatically then show this message.

+-----------------------------------------------------------------------------+ 
| {{ full message headers }}                                                  |
| Return Receipt: Ignored $TIME $DATE                                [ send ] |
| { Always send $SENDER return receipts automatically }                       |
+=============================================================================+
{{ message body }}

I'm not sure if "Ignored" or "Refused" or "Not Sent" is the correct terminology here.

Failed to Send a return Receipt

When a return receipt fails to send (for network or other reasons) we display it back in the message like an original return receipt. We should probably use a variation of the original color to indicate a failure. The message should be marked as new so that the person sees it.

{{ message header }}
+-----------------------------------------------------------------------------+ 
| +====+  Failed to send $SENDER a Return Receipt!!            [ Resend ] [x] |
| |****|                                                                      |
| +====+  { Always automatically send return receipts to $SENDER }            |
+=============================================================================+
{{ message body }}

If this receipt was automatically sent, but failed. It might be good to rethink this, allowing for an automatic resend on a timer that we display.

{{ message header }}
+-----------------------------------------------------------------------------+ 
| +====+  Failed to send $SENDER a Return Receipt!!            [ Resend ] [x] |
| |****|                                                                      |
| +====+  { Never automatically send return receipts to $SENDER }             |
+=============================================================================+
{{ message body }}


Sending a Return Receipt Request

Writing a message with a return receipt requested

With out the always option turned on for the receiver.

{{ message header }}
+-----------------------------------------------------------------------------+ 
| +====+  Request a Return Receipt for this Message                [ Cancel ] |
| |****|                                                                      |
| +====+  { Always require request return receipts from $RECEIVER }           |
+=============================================================================+
{{ message body }}

With the always option turned on for the receiver.

{{ message header }}
+-----------------------------------------------------------------------------+ 
| +====+  Request a Return Receipt for this Message                [ Cancel ] |
| |****|                                                                      |
| +====+  { Stop requiring return receipts from $RECEIVER }                   |
+=============================================================================+
{{ message body }}

old mockups

After canceling the request for a return receipt

{{ message header }}
+-----------------------------------------------------------------------------+ 
| This message will *not* request a Return Receipt               [ Undo ] [x] |
+=============================================================================+
{{ message body }}

Receiving return receipts

  • What does a return receipt look like to our user?
  • How do we notify them of their arrival?

Implementation Details

Timestamps for send and ignore are important parts of the interactions. Currently the MDN reports are simple flags on the message.

MSG_FLAG_MDN_REPORT_NEEDED 0x00400000
MSG_FLAG_MDN_REPORT_SENT 0x00800000
MSG_FLAG_MDN_REPORT_REFUSED suggested addition for recording that a person refused to send a receipt

Relevant Links

Relevant Bugs

bug 380399 — Return receipt status is only stored in .msf file and not in mbox file

Possible problem that still needs to be worked around, indicated in the NRRHE extension

bug 249684 — Return Receipt prompt should ask Yes/No, not OK/Canel

Good suggestions for improvements to button text. Used the 'Send' and 'Ignore' text suggestion from this bug.

bug 346205 — Return Receipts prefs shouldn't be under Composition

The pref is currently under Advanced -> General -> [Return Receipts...]

bug 221615 — View Before Return Receipt (Reciept)

Brings up good point that you should be able to wait to send a receipt and also see when a return receipt was sent

bug 378224 — Toolbar button: toggle return receipt

Our info bar on send should provide an excellent fix to this situation

bug 339233 — return receipt settings refer to "Sent" folder when they really mean the folder specified as the fcc folder

Possible bug with the placement of receipts according to where your sent messages are stored.

Recommend: Returned receipts shouldn't be messages at all really, but viewed almost as something stapled to the sent message. When you view the sent message you also see the receipts listed with the people, see bug 339307 listed below. That said we also need to have a story for notifying people as receipts come in.

bug 386158 — Sending receipt fails but no warning returns to user

Possible failure in our storyline if there is a failure sending the receipt message the user is never informed nor given a chance to resend.

bug 345205 — Return receipt control doesn't work as advertised

Seems to be a perception issue and we're doing the wrong thing. The pref says 'never 'send' If not in To: or CC: field, yet the report indicates that if you are in the received header it will ask anyway.

Further Improvement Bugs

bug 312425 — User should be able to choose folder where received return receipts would end

Currently the pref only allows for Inbox or Sent folders to be chosen, this bug wishes to extend those choices to any folder.

bug 339307 — Return receipts (MDN) status overview

Improvement for the overview of a message sent requiring a return receipt. There should be a nice opportunity to indicate each person in the receiver list who sent back a receipt.