SMTP e-mail RECALL from PHP
First of all I am aware that e-mail recall rarely works, and then usually only with Microsoft Exchange server.
Despite the limitations, a client has requested this feature.
My understanding is that the RECALL functionality in Microsoft Exchange is a proprietary extension of the SMTP protocol, and sends a new e-mail asking for a RECALL to the client. The client then does its best to recall the message.
I have found no documentation on what the RECALL extension to SMTP is, and I don't really fancy pulling out wireshark in order to trace it 开发者_如何学Pythonyet. I did found suggestion for an RFC extension of SMTP in progress https://datatracker.ietf.org/doc/html/draft-leiba-morg-message-recall-00 and I assume this is similar to Microsoft's solution.
Since our solution is PHP based, I am therefore asking: Does there exist a method in PHP to send an SMTP recall request for a previously sent e-mail?
Regards Dagfinn
I don't think this has anything to do with SMTP.
Rather, if you try sending a recall message to your non-Outlook operated email account, you can see that it's simply an email message. My guess is that either the receiving Exchange server or your Outlook client will recognize such messages and perform the appropriate action.
The content of the recall message seem to be quite simple, with nothing of obvious interest in the email headers. The message body (which I cannot view in plain text form where I'm at right now, unfortunately) simply says:
John Doe would like to recall the message, "foo bar subject".
In any case, I doubt any PHP email library supports this out of the box. However, it should be fairly easy to implement, since it probably just requires you to create a proper email template and fill in the blanks with a subject, name and perhaps a message id.
Does the client specifically ask for interoperability with Exchange and RECALL, or is she using that as an example of whats she's after?
If it's the latter I suggest you propose an alternate solution using a grace period before the e-mail is actually sent to the SMTP server. To the user it'll look like the e-mail is sent but she'll be able to undo the send within the grace period (for instance 10 minutes).
-- Alf
There is an SMTP extension for Recalling message since 2010, however it seems that none of the SMTP servers are supporting this.
https://tools.ietf.org/id/draft-leiba-morg-message-recall-00.html#anchor1
精彩评论