【问题标题】:PHP / MySQL Ticket Response - Store E-mail repsonse in database?PHP / MySQL Ticket Response - 在数据库中存储电子邮件响应?
【发布时间】:2012-01-06 14:15:41
【问题描述】:

我正在构建一个基本的支持请求系统,客户可以登录并提出问题,管理员可以进入并回复,它将状态设置为“已响应”并通过电子邮件向客户发送电子邮件让他们认识某人已经回复了。

我的问题是.. 我有一个“cmets”部分,它是管理员和客户之间交互的日志。如果我将管理员的初始回复通过电子邮件发送给客户,那么我感觉他们只会从他们的电子邮件中点击“回复”并开始通过那里进行通信,并且不会存储日志。

我可以给客户发电子邮件并说“登录以查看回复”,或者如果客户确实点击了回复,我可以以某种方式跟踪它并将其插入到 cmets 表中,就像他们从网站上所做的那样。如果这是可能的?

只是想知道是否有执行此操作的标准方法以及您可能有的任何建议。

谢谢!

【问题讨论】:

  • 不要使用“真实”的电子邮件地址。使用通过您的票务系统路由电子邮件的虚拟电子邮件,以便记录它们。

标签: php mysql ticket-system


【解决方案1】:

向用户发送电子邮件时,您可以从为该特定工单创建的电子邮件地址发送电子邮件。可以通过您的电子邮件系统识别它以帮助您将其路由回 php 票务系统的东西。

支持(票号)@域

support12345@mydomain.com

然后这取决于您的电子邮件服务器如何从那里开始。 这个问题有几个有用的提示可能会帮助您或帮助您入门。

How to get email and their attachments from PHP

【讨论】:

    【解决方案2】:

    如果您希望他们的回复自动插入到数据库中,您将在您的服务器中分配一个 cron 作业来运行 php 脚本来检测是否有来自客户的回复(您需要一个列出客户的表格' 电子邮件和姓名。

    每次客户使用票务系统时,他们的电子邮件和姓名都会进入此表)。

    您还需要通过 imap 或 SMTP 连接到您的收件箱,并且有执行此操作的脚本(phpmailer、swiftmailer 等)并“遍历”每封电子邮件并查看发件人电子邮件是否与您客户中的任何电子邮件匹配桌子。然后插入 cmets 表。

    另一种方法是在每次加载 cmets 页面时通读电子邮件,但这会导致页面加载时间更长。但是,与 cron 作业相比,数据总是更“实时”。

    【讨论】:

    • 感谢您的回复。我使用 PHPMailer 并通过 SMTP 连接以发送电子邮件,但我在网上找不到任何关于如何通过 SMTP 连接以阅读电子邮件并检查收到的内容的信息?我将客户的电子邮件存储在 users 表中 - 所以我只需要帮助检测是否有使用 PHPmailer 的客户回复。
    【解决方案3】:

    您可以使用电子邮件管道(如果您的服务器支持)。

    在主题中,您将拥有一个唯一标识符,其中包含票证 ID 或票证独有的内容。示例:“我如何吃食物 [问题:#1234]”,其中 1234 是票证 ID。

    在您的控制面板中,您可以为您的电子邮件管道脚本设置一个电子邮件转发器。

    本教程提供了电子邮件管道的基础知识,我将其用作管道脚本的基础:http://www.damnsemicolon.com/php/parse-emails-in-php-with-email-piping-part-1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 2012-11-11
      • 2021-04-24
      • 1970-01-01
      • 2011-11-13
      • 2020-08-09
      • 2018-06-23
      相关资源
      最近更新 更多