We started discussing the internals of native Exchange message recalling in How Exchange Message Recalling Works. Here we saw that all functionality is implemented at the MS Outlook client. We also went through the most common recall failure reasons. Today we conclude this discussion exposing less known recall failure conditions and other interesting nuggets.
Recalling Foreign Emails? Forget It
Recalling emails sent to recipients outside your Exchange Organization will not work. Outlook recall requests are not based on a standard internet protocol. Instead, Exchange specific Rich Text Messages are used. These cannot be easily sent out over the internet. So Exchange applies a conversion that renders the request readable to any SMTP email client, but in doing so it loses all the functionality.
Outlook Cached Mode and Personal Folders
In How Exchange Message Recalling Works, I hinted this point when saying: "At some point the recipient's MS Outlook client processes this recall request.... Outlook will try to satisfy the request as soon as it discovers that a request was received."
Outlook doesn't just process a recall request as soon as it reaches the recipient mailbox. If using Cached Mode or Personal Folders, Outlook discovers a recall request when checking the server mailbox for new messages. If automatic recall processing is enabled, this would be the time when the recall request is processed.
On the other hand, if the recipient is directly accessing the server mailbox without Cache Mode, then recipients will see the recall requests sitting in their Inbox for some time. Again recipients are tempted to open the original email before Outlook discovers the recall.
Mailbox Rules
Mailbox rules pose another hurdle to successful recalling. Rules are often employed to automatically organize incoming emails into sub-folders. Recall processing fails if the original email and the recall message end up deposited to different folders.
When the Recall Arrives First
As already discussed recalling makes use of recall request messages sent from the sender to the original recipient list. So we basically have at least two messages, the original email and the recall request message. Now what happens if Outlook processes the recall request before it sees the original email? If Outlook is configured to automatically process recalls, the recall will fail immediately and the sender receives a failure notification (if requested).
You think this is unlikely to happen? If that is the case, then I must be very unlucky. I have seen this happening many times. I am not sure if this happens more with one Outlook version than another. I can simply say that I reproduced this using Outlook 2007 with ease. Here is how:
The recipient Outlook 2007 client is using Cached Mode, is configured to automatically process recalls, and is initially closed.
I send an email to this recipient and immediately recall it.
At this point the recipient, whose Outlook is closed, has both the original email and recall request at his server mailbox. Let me also say (in case someone from MS wants to check this) that the recipient has no other new messages in his server mailbox.
The recipient opens Outlook 2007. The recall request is apparently processed first and recalling fails.
I went a little bit further with this test. I kept the original email closed at the recipient mailbox and after that the first recall request failed, I submitted a second recall request. This time the request was successfully processed. The original email was deleted and I received a successful recall confirmation.
Notifications Lie
As we saw in Recalling Emails from Outlook 2013, 2010, 2007, 2003, email senders are able to request notifications on the outcome of their recall. These notifications will report back whether or not the recall was successfully completed. However we talked of successful and failed recalls without explaining exactly what these terms truly mean.
Whereas the meaning of failure holds little surprises, success might not be as sweet as you may think. By success most will think that the original email was deleted, without the recipient reading it. Less technical wishful thinkers may even believe that all copies of their email got destroyed. I hate to spoil the fun but I have to.
First of all, client side recalling can never beat the Exchange server-side mailbox item retention. Just like any other deleted email, successfully recalled emails may be recovered using the Outlook Recover Deleted Items functionality. This was discussed in Exchange Server 2010 Native Data Protection - Part 1. The same functionality was also available in earlier Exchange releases.
In Outlook 2003/2007 go to Tools | Recover Deleted Items. In Outlook 2010 select Folders | Recover Deleted Items.
The above shows a successfully recalled email available under Recover Deleted Items. Note how both the original email and the recall request itself are listed. Getting the original email back is just a matter of clicking on Recover Selected Items.
Ok, many users are not aware of Recover Deleted Items. Even so, Success does not mean the recipient did not read the original email. A recipient could have read the email, maybe even made a copy of it and then marked the email as unread. When the email request comes in, Outlook finds the message is unread and successfully completes the recall. The sender also receives a nice recall success confirmation in this case.
Conclusion
Most of our discussion orbited around the fact that Exchange message recalling is implemented at the Outlook client. Unavoidably the Recipient has great control over his own mailbox. Thus he has plenty of opportunity to block recalling. He even has the opportunity to let us believe the recall succeeded and then go back, recover and read the email.
Although I am not part of Microsoft, objectively I don't believe this feature was ever intended to conceal errors. At best client side recalling is like an e-apology. Unfortunately if you are dealing with strictly confidential, business critical information an apology won't take us far.
This is what inspired me to start working on WinDeveloper Message Recall, a server side recalling solution that works well with both internal and more importantly with emails addressed to foreign recipients.
References
How Exchange Message Recalling Works
Recalling Emails from Outlook 2013, 2010, 2007, 2003