Then I notice that I have another message at the end of my mail file correcting the first message. A generalization of this idea would be to permit remote editing of a message that I have sent. Suppose I send a message and then realize that it contains an error. The recipient's mail reading program could have a command to display the unedited message as well. But, we can make the medium more forgiving.
People make mistakes, after all.
Many times you send a message you want to retrieve, you realize that you want to retrieve it rather soon after having sent it. One simple and obvious way to satisfy people's desire to have retrievability in this sort of situation is to not actually send the mail until, say, the user exits the mail user interface program. This is analogous to the way some mail UIs don't actually delete messages until you exit. OZ, the Yale TOPS-20 mail user interface has part of this functionality. When thinking about cancelling messages, remember that they may have multiple recipients, and great confusion could be caused if delivery to some of them takes place, but delivery to others is aborted due to the cancel request.