SMTP从PHP中回收电子邮件。

时间:2022-02-25 18:15:52

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. The client then does its best to recall the message.

我的理解是,Microsoft Exchange的召回功能是SMTP协议的专有扩展,并发送一封新的电子邮件,要求召回客户。然后,客户端会尽力回想起这个消息。

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. 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的召回扩展的文档,而且我也不太愿意拿出wireshark来跟踪它。我确实在http://tools.ietf.org/html/draft-leiba-morg-message- 00中找到了对SMTP的RFC扩展的建议,我认为这类似于微软的解决方案。

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

3 个解决方案

#1


3  

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. My guess is that either the receiving Exchange server or your Outlook client will recognize such messages and perform the appropriate action.

相反,如果你尝试向你的非outlook操作的电子邮件帐户发送一个召回信息,你可以看到它只是一封电子邮件。我的猜测是,接收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. 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.

无论如何,我怀疑任何PHP电子邮件库都支持这一功能。但是,它应该相当容易实现,因为它可能只需要您创建一个适当的电子邮件模板,并在空格中填入主题、名称和可能的消息id。

#2


1  

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. 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).

如果是后者,我建议您在电子邮件实际发送到SMTP服务器之前使用一个宽限期来提出替代解决方案。对于用户来说,它看起来就像发送电子邮件,但她可以在宽限期内撤销发送(例如10分钟)。

-- Alf

——阿尔夫

#3


0  

There is an SMTP extension for Recalling message since 2010, however it seems that none of the SMTP servers are supporting this.

自2010年以来,有一个用于回顾消息的SMTP扩展,但是似乎没有一个SMTP服务器支持这一点。

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

https://tools.ietf.org/id/draft——leiba——morg——信息——回忆- 00. - html # anchor1

#1


3  

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. My guess is that either the receiving Exchange server or your Outlook client will recognize such messages and perform the appropriate action.

相反,如果你尝试向你的非outlook操作的电子邮件帐户发送一个召回信息,你可以看到它只是一封电子邮件。我的猜测是,接收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. 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.

无论如何,我怀疑任何PHP电子邮件库都支持这一功能。但是,它应该相当容易实现,因为它可能只需要您创建一个适当的电子邮件模板,并在空格中填入主题、名称和可能的消息id。

#2


1  

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. 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).

如果是后者,我建议您在电子邮件实际发送到SMTP服务器之前使用一个宽限期来提出替代解决方案。对于用户来说,它看起来就像发送电子邮件,但她可以在宽限期内撤销发送(例如10分钟)。

-- Alf

——阿尔夫

#3


0  

There is an SMTP extension for Recalling message since 2010, however it seems that none of the SMTP servers are supporting this.

自2010年以来,有一个用于回顾消息的SMTP扩展,但是似乎没有一个SMTP服务器支持这一点。

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

https://tools.ietf.org/id/draft——leiba——morg——信息——回忆- 00. - html # anchor1