【问题标题】:PHP IMAP mail "Disposition-Notification-To" header - mark as sentPHP IMAP 邮件“Disposition-Notification-To”标头 - 标记为已发送
【发布时间】:2015-06-18 18:51:01
【问题描述】:

我正在构建一个小型网络邮件系统,并正在处理“Disposition-Notification-To”标头,以便在收到的邮件上向要求它的人发送送达收据。

问题是:

  • 如何只发送一次?我怎么知道它已经发送,并且不再询问/发送?

有什么想法吗?

类似标志的东西,比如“Unseen”,但是“Delivery-Receipt-Sent”,怎么做?

我必须为此使用数据库吗?没有别的办法?

【问题讨论】:

  • 几乎没有客户端会使用“Disposition-Notification-To”,大多数用户都禁用了它,大多数 webmail 只是将其剥离,许多 isp 将其剥离。另一个被垃圾邮件发送者破坏的邮件功能
  • 进行了一些测试,它适用于 Horde 和 Outlook 2013。您有什么建议?
  • 当前的“邮件是否打开”的行业标准是托管在具有跟踪 ID 的服务器上的“不可见”图像。这失败了很多时间。根本没有可靠的方法来确定电子邮件是否被打开
  • 好的,我知道,我想要的是只发送一次收据。类似于“未见”/“已回答”标志。
  • 您可以使用“图像”技巧,但不能保证

标签: php email imap


【解决方案1】:

RFC 3503 谈到使用$MdnSent 关键字作为执行此操作的一种非常标准的方式。尽可能不要发明自定义关键字名称。

关于如何通过 PHP 在消息上设置这些关键字,您可能需要阅读 PHP 的 IMAP 库文档。有一个函数可以将这些关键字/标志存储在服务器上。

【讨论】:

  • 谢谢!我试图这样做,但没有成功: $status = imap_setflag_full($this->connection, $this -> messageNumber, '\\$MdnSent');看起来我正在使用 Courier MTA,我发现了这个:courier-mta.org/imap/README.imapkeywords.html Custom flags/keywords are written on a file..
  • 我不确定是什么让您认为添加反斜杠是个好主意。
  • 我尝试了几种方法,反斜杠为“\\Seen”,没有反斜杠..它们都不起作用..
  • 如果你像我告诉你的那样完全使用$MdnSent会发生什么?
  • 什么都没有。只有默认标志(“\\Seen”、“\\Answered”、..)有效。
【解决方案2】:

使用标志。要查找您要发送的消息:

a uid search header "disposition-notification-to" "@" not keyword sentdnt

然后当你发送:

b uid store 321312 +flags.silent sentdnt

在理想情况下,您可以与其他执行此操作的客户端协调标志名称。

【讨论】:

  • 我想我明白了,但是用 PHP 做什么,我想我已经尝试添加自定义标志,但它没有工作..
  • 好吧,如果你不能使用标志,你将不得不使用数据库。
猜你喜欢
  • 2016-11-03
  • 1970-01-01
  • 2015-02-02
  • 2011-04-17
  • 2013-02-25
  • 2011-08-26
  • 1970-01-01
  • 2014-10-09
  • 2016-06-17
相关资源
最近更新 更多