【问题标题】:What is the best way to manipulate a raw email message in PHP (change headers, etc)?在 PHP 中操作原始电子邮件消息(更改标题等)的最佳方法是什么?
【发布时间】:2012-10-06 12:29:52
【问题描述】:

在 PHP 中处理原始电子邮件消息(更改标题等)的最佳方法是什么?

我想做一些简单的更改,比如更改回复、格式化主题等。

我可以使用正则表达式轻松做到这一点。但是,电子邮件既复杂又脆弱,我知道这很可能会与我没有想到的事情发生冲突。

Mailparse 之类的功能可以读取 原始邮件,但我找不到更改 原始邮件的标准扩展。

也许我应该使用 Mailparse 来帮助确保在设置正则表达式进行更改之前正确阅读邮件。

【问题讨论】:

  • 不清楚你在做什么,邮件是否已经到达你的服务器?发送邮件?通过网络破解电子邮件解析
  • @Dagon- 几个独立的电子邮件功能。一个功能是邮件分发列表,其中电子邮件“来自”列表中的一个成员,但必须更新以显示“来自”通用地址,以便 Amazon SES 将其发送给所有成员,并使用原始地址放置在回复上的地址。
  • 我不会称其为更新,即向系统发送一封邮件,然后再发送一封新邮件。您不会在传输过程中“编辑”会破坏标题并导致许多潜在问题的“编辑”。

标签: php parsing email


【解决方案1】:

Pear 数据库提供了一个包Mail_Mime,它可以满足您的需要。

您可以通过运行以下命令使用Pyrus 安装该软件包:

php pyrus.phar install pear/Mail_Mime

该包提供了一个excellent example,演示了如何创建消息。

该包似乎不支持加载现有的原始消息并对其进行操作,但正如您在问题中提到的,您可以使用 Mailparse 提取相关信息,然后使用该信息通过 Mail_Mime 重新组合消息。

【讨论】:

  • 我希望有一种方法可以保持消息完整,直接对一两个字段进行更改。我有点担心,例如,通过在我的服务器上将它们拆开、重新组装并传递它们,“几乎损坏”的消息会被完全破坏。此外,非标准客户端添加到电子邮件中的一些额外功能可能会被破坏(例如某些电子邮件客户端的特殊线程标记)。不过我会接受答案,这就是我要继续前进的方式!
  • 你不想那样做。您想创建一条新消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 1970-01-01
  • 2017-06-20
  • 1970-01-01
  • 2013-01-23
  • 2014-02-16
  • 2016-06-28
相关资源
最近更新 更多