【问题标题】:E-mail repository in PHP using CC使用 CC 的 PHP 电子邮件存储库
【发布时间】:2011-11-07 01:42:37
【问题描述】:

我需要一个系统来记录某些电子邮件消息,以便它们也可以在线显示。我希望这尽可能简单,所以想在我开始自己构建之前询问是否有人知道现有的解决方案。如果尚不存在解决方案,我也对任何可以帮助我构建此工具的信息感兴趣。

理想情况下,我只想设置一个电子邮件地址,例如 log-me@mydomain.com,该地址仅用于此目的,因此不需要任何复杂的排序/解析对于要存储的消息,可以安全地假设应该记录在该电子邮件地址收到的任何消息。将消息添加到数据库后,我将执行管理员/版主功能。我希望能够写一封电子邮件,在 CC/BCC 字段中复制 log-me@mydomain.com 地址,并在收到电子邮件时让系统记录该电子邮件。我也没有问题安排进程以特定的时间间隔运行,我已经使用了几个这样的脚本。

所以,考虑一下,如果还没有这种类型的系统,而我需要自己构建它,我真正需要的只是一种通过 pop3 将电子邮件发送到 mysql 数据库的方法,最好保留电子邮件可能包含的任何 html 格式,其余部分我已经知道该怎么做。

我确实在网上搜索了解决方案,但运气不佳,因此非常感谢任何帮助。

【问题讨论】:

  • 如果我们不知道您这样做的原因,您的回复将受到限制。
  • 一旦我将数据输入数据库,我就可以用它做很多事情。我试图弄清楚如何让 PHP 将 html/txt 格式的电子邮件发送到 mysql 数据库中。

标签: php mysql database email pop3


【解决方案1】:

有几种方法可以做到这一点。基本上,您需要将邮件传送到知道如何将邮件导入数据库的脚本。如果您正在运行自己的邮件服务器,那么procmail 是您的最佳选择。您可以在procmail 中设置规则,以便将所有发往某个电子邮件地址的邮件通过管道传送到您的脚本。

如果邮件服务器在其他地方并且您有 POP3 或 IMAP 访问权限,那么您可以安排一些东西来定期接收邮件。在这种情况下,一种选择是fetchmailfetchmail 可以连接到 POP3 服务器并将电子邮件传送到脚本。另一种选择是编写一个直接使用IMAP/POP3 extension 的PHP 脚本。无论哪种情况,您都可以使用 cron 安排它定期运行。

【讨论】:

  • 我找到的解决方案,它只是一个将电子邮件发送到数据库的后端系统,正如您所说,它使用 PHP IMAP 扩展,而且效果很好。建立一个前端并不麻烦。我对您的答案投了赞成票,因为它确实包含有用的信息,但我也为这个问题提交了我自己的答案,详细说明了我找到的确切解决方案。感谢您的帮助!
【解决方案2】:

所以我最终找到了这个发给 DB 的电子邮件:http://www.phpclasses.org/discuss/package/3324/

它的工作方式与我正在寻找的完全一样,现在我可以使用存储在数据库中的信息来做我需要的事情。

虽然包中有一个小错误。 “发件人”地址在数据库中显示为“发件人”和“收件人”地址。下面是类中需要修改的代码:

1. if(is_array($from)){
2.  foreach ($from as $id => $object) {
3.    $fromname = $object->personal;
4.    $fromaddress = $object->mailbox . "@" . $object->host;
5.   }
6.  }
7.  
8. if(is_array($to)){
9.  foreach ($from as $id => $object) {
10.   $toaddress = $object->mailbox . "@" . $object->host;
11.  }
12. }

上面代码第 9 行的 $from 应该更改为 $to。这将修复错误并在数据库中显示正确的“收件人”地址。该类在一个文件中,因此只需搜索:

if(is_array($to)){

找到我在上面发布的代码。

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 1970-01-01
    • 2019-09-23
    • 2012-07-02
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 2018-12-20
    • 2014-01-12
    相关资源
    最近更新 更多