如何通过电子邮件响应影响PHP程序/MySQL数据库

3
我正在尝试找出如何做某事。这一定是可行的——我已经在多个系统(Twitter、Facebook等)中看到了类似的操作。
我想要做的基本事情是:有人在我的网站上留言。该评论将转发到我的电子邮件和我的MySQL数据库。然后我直接在我的电子邮件上回复。回复被保存到数据库中,并自动批准用户的评论。
我无法弄清楚如何直接从电子邮件与我的MySQL/PHP系统通信。另外,我也不知道如何设置收件箱?
我猜想我需要设置邮件服务器规则,以便将发送到xxxx-response@mydomain.com的电子邮件重定向到一个php脚本,其中xxxx是原始评论的标识符?
感谢您能提供任何帮助...

我会使用在CLI模式下执行的PHP脚本(作为计划任务或其他方式)来检查回复收件箱中的邮件,获取邮件并解析它们以将回复添加到数据库中... - SmasherHell
1
您可以设置一个邮件管道,将电子邮件提交给脚本,具体取决于您的邮件服务器。我们对所有反弹的邮件都这样处理。一个例子:http://harrybailey.com/2009/02/send-or-pipe-an-email-to-a-php-script/ - user557846
2个回答

3
假设您正在使用Unix系统,您可以设置一个接收邮件的帐户,例如“fred”,并在fred的主目录中使用.forward将电子邮件导入到您的PHP脚本中。例如:

.forward:

|"/usr/bin/php /path/to/your/script.php"

每当fred的邮箱收到一封电子邮件时,将会调用您的脚本。


1

你不能从电子邮件中“与mysql交流”。电子邮件是一段被动的文本,无法采取行动。

解决方案基于以下内容:

您拥有一个电子邮件帐户,并通过使用wget或类似工具与crontab条目相结合的php脚本定期轮询该帐户的收件箱。您还可以创建事件驱动的方法,但这更加复杂,实际上并没有提供优势。对于在收件箱中找到的所有消息,您都要检查它是否与数据库中的任何先前条目匹配。由于您可以通过php访问消息头和正文(文本),因此可以执行此操作。这就是您所需要的全部。通常,两个消息之间的连接是通过评估“回复”按钮按下时电子邮件程序设置的“In-reply-to”标头来完成的。它就像一个参考。

访问帐户收件箱是通过标准邮件访问协议完成的,通常是pop3或更好的imap4。当邮件服务器不在同一系统上时,您显然也想添加ssl加密。php的imap扩展非常适合实现此类客户端,它支持多种协议。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接