简体   繁体   English

来自PHP的SMTP电子邮件回调

[英]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. 首先,我知道电子邮件召回很少有效,然后通常只有Microsoft Exchange服务器。

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. 我的理解是,Microsoft Exchange中的RECALL功能是SMTP协议的专有扩展,并向客户端发送一封要求RECALL的新电子邮件。 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 yet. 我没有找到有关SMTP的RECALL扩展名的文档,而且我并不想要删除wireshark以便跟踪它。 I did found suggestion for an RFC extension of SMTP in progress http://tools.ietf.org/html/draft-leiba-morg-message-recall-00 and I assume this is similar to Microsoft's solution. 我确实找到了对SMTP进行中的RFC扩展http://tools.ietf.org/html/draft-leiba-morg-message-recall-00的建议 ,我认为这与Microsoft的解决方案类似。

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? 由于我们的解决方案是基于PHP的,因此我问: PHP中是否存在发送以前发送的电子邮件的SMTP撤回请求的方法?

Regards Dagfinn 关心Dagfinn

I don't think this has anything to do with SMTP. 我不认为这与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. 相反,如果您尝试向非Outlook操作的电子邮件帐户发送召回消息,您可以看到它只是一封电子邮件。 My guess is that either the receiving Exchange server or your Outlook client will recognize such messages and perform the appropriate action. 我的猜测是,接收Exchange服务器或Outlook客户端将识别此类消息并执行相应的操作。

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". John Doe想要回忆起这个消息,“foo bar subject”。

In any case, I doubt any PHP email library supports this out of the box. 无论如何,我怀疑任何PHP电子邮件库都支持这种开箱即用的功能。 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. 但是,它应该相当容易实现,因为它可能只需要您创建一个正确的电子邮件模板并填充主题,名称和消息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? 客户是否明确要求与Exchange和RECALL的互操作性,或者她是否将其作为她所追求的最新例子?

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. 如果是后者,我建议您在电子邮件实际发送到SMTP服务器之前使用宽限期提出备用解决方案。 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). 对于用户来说,它看起来像是发送了电子邮件,但她能够在宽限期内撤消发送(例如10分钟)。

-- Alf - 阿尔夫

There is an SMTP extension for Recalling message since 2010, however it seems that none of the SMTP servers are supporting this. 自2010年以来,Recalling消息有一个SMTP扩展,但似乎没有任何SMTP服务器支持此功能。

https://tools.ietf.org/id/draft-leiba-morg-message-recall-00.html#anchor1 https://tools.ietf.org/id/draft-leiba-morg-message-recall-00.html#anchor1

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM