将自定义变量添加到gmail收件箱中的电子邮件标头中

时间:2010-03-24 08:25:30

标签: php gmail email-headers

这可能看起来很奇怪,但我想知道是否可以将自定义标题详细信息添加到收件箱中已有的电子邮件中。就像我们想说的那样,我希望在电子邮件的标题中添加类似于 - myvariable = myvalue的内容,然后能够以某种方式查询它。我正在查看来自Iloha邮件的代码,大部分细节如主题和收到的信息都在标题中,您可以搜索它们。那么可以将我自己的自定义变量添加到电子邮件标题并以相同的方式查询它吗?如何使用php完成?

编辑====================

谢谢我知道如何修改已发送邮件的标题以及查询邮件标题中的自定义变量但是在这种情况下我想知道是否可以在我收件箱中已收到的邮件中添加自定义变量。其实让我在这里定义一下情况。

我正在研究谷歌应用程序解决方案,该解决方案需要维护对电子邮件的引用。基本上,应用程序是这样的,当电子邮件进来时 - 我们从该电子邮件创建订单,并希望通过某种标识符维护对该EXACT电子邮件的引用,这将使我们能够识别该电子邮件。

事实上,我们不想在数据库中下载电子邮件并维护单独的商店,因为我们希望在GMAIL上保留所有电子邮件。我们只需要:

一种能够永久“链接”到特定电子邮件的方法 - UID只是一个序列号而且不太可靠。我们找不到任何可用作唯一ID或主键的电子邮件属性,因此我们认为是否可以在我们的终端生成密钥并将其存储在电子邮件本身的自定义变量中。然而,遗憾的是,似乎没有办法操纵现有电子邮件的标题。

:(有没有解决这个问题的方法我可以使用任何IDEA!

3 个答案:

答案 0 :(得分:2)

是的,您可以在发送电子邮件时添加自己的标题...

<?php
$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'myvariables: myvalue';

mail($to, $subject, $message, $headers);
?> 

我怀疑您是否可以修改现有的电子邮件标题,除非它们存储在数据库或其他内容中,而不仅仅是从POP / IMAP服务器中检索。

答案 1 :(得分:2)

为什么不使用Message-ID标头?这对于每封邮件都应该是唯一的(您可以通过点击折叠菜单并选择“显示原始邮件”来查看任何给定的Gmail邮件。)

检查Internet邮件格式RFC(RFC2822)的第3.6.4节以获取更多信息(http://www.faqs.org/rfcs/rfc2822.html)。

答案 2 :(得分:1)

我认为最好的解决方案是:

  • 连接到IMAP服务器,检索电子邮件,更改标题,将其重新放回服务器上,至少可以使用gmail(PHP中的示例http://forums.sun.com/thread.jspa?threadID=5419712 for PHP查看http://www.php.net/manual/en/ref.imap.php但改变标题似乎并不简单)
  • 如果再也无法使用gmail或PHP,请连接到IMAP服务器,检索电子邮件,复制内容,使用新标题创建新电子邮件,将其发送到连接到Gmail的新邮箱。

希望它有所帮助。