邮件到 MySQL 数据库
Posted
技术标签:
【中文标题】邮件到 MySQL 数据库【英文标题】:Mail to MySQL Database 【发布时间】:2010-11-11 21:04:17 【问题描述】:我想将数据发送到电子邮件地址并将其保存到 mysql 数据库 (php)。 最简单的方法是什么? (没有表单发布,没有卷曲等,只有电子邮件)
【问题讨论】:
@all:我很高兴能这么快得到你的答案。 您的所有想法都有其特殊的范围。当我有很大问题时,我会记住它们。在我的特殊情况下,我将考虑丹尼斯解决方案,因为它最适合。非常感谢@all。 我对所有答案都投了赞成票,因为在他们的范围内都很好。 【参考方案1】:如果您可以使用 POP 访问电子邮件,只需 have a process 使用 POP functions 检查电子邮件并将所有内容发送到您的数据库
你也可以使用 php IMAP support
【讨论】:
我已经拥有访问权限,我会考虑您的解决方案。但是服务器帐户没有 cron 功能。 如果没有 cron,我看不出有什么办法,除了使用另一个有 cron 的服务器来调用 php 脚本或自定义邮件服务器,它会调用脚本。 你的意思是服务器没有 cron 功能,因为它在托管服务中? 不是服务器。我无权设置 cron 作业。 是的,它是一个托管服务。【参考方案2】:假设您已经知道如何将数据保存到 mysql,您将需要访问邮件服务器,可以是您自己的、网络主机,也可以使用免费的,例如 Gmail 或 Hotmail。
然后您可以使用 PHP 的 IMAP 函数(也可以访问 POP)来访问邮件。可以帮助您的文章:PHP imap info 和 a tutorial on creating PHP webmail
【讨论】:
【参考方案3】:有几种方法。
使用 postfix 别名脚本,基本上,postfix 接收您的邮件,然后通过您选择的脚本运行它。邮件的内容出现在 STDIN 中 - 然后您可以随心所欲地处理邮件的内容。
使用像 apache james 这样的自定义邮件服务器,它旨在处理邮件并“用它做点什么”
我最近在 google 实验室找到了一个不错的 - http://freshmeat.net/projects/subethasmtp - 看起来非常好。
请记住,电子邮件不是一种有保证的协议,如果您尝试进行应用到应用的消息传递,那么可能有更好的方法!
希望这会有所帮助。王牌
【讨论】:
对于我的实际问题,我看不到涉及它的方法。 :-( 但是非常感谢您的提示。对于其他设置,这将起作用。 如果您使用的是 subetha,您将编写两个类,一个自定义消息工厂和一个自定义消息处理程序。当服务器收到一封邮件时,它会创建一个处理程序对象,然后有效地将消息对象的数据流传递给您。然后,您使用 MimeMessage 和 Session 将其解码为您可以随心所欲的对象。在您的情况下,提取字段并放入数据库。我得到了一个例子并在大约 1 小时内工作。这是一个经过深思熟虑的框架。 似乎找到了一种对社区来说非常有趣的简洁方式。如果你分享它会很好。【参考方案4】:有一个 slicehost 分步教程,它采用基于 unix 的机器,在其上安装 postfix,将其设置为使用 MySQL,并将其配置为接受虚拟用户并提供/接收来自多个域的电子邮件。
设置干净、快速且安全。生活很美好,嗯?
http://articles.slicehost.com/email
【讨论】:
【参考方案5】:如果你的服务器没有 imap 但你有一个外部系统有 cron 你可以编写一个页面来检查电子邮件帐户并将数据加载到 MySQL 然后在有 cron 的机器上设置一个脚本wget mysql 页面每 X 分钟一次,其中 X 是您希望加载数据的频率。
或者,如果您知道电子邮件会快速加载,您可以在数据库中设置一个带有时间戳的小型字段表。每次您的 PHP 脚本运行时,它都会检查时间戳,如果超过 5 分钟,它会在加载网页之前调用电子邮件加载脚本。
【讨论】:
+1 我只是在编辑我的答案以添加每页检查电子邮件的想法 将其视为工作的奖励;_)【参考方案6】:也许你应该看看 www.dbmail.org
【讨论】:
以上是关于邮件到 MySQL 数据库的主要内容,如果未能解决你的问题,请参考以下文章
使用 PDO/MySQL 将自动增量编号附加到电子邮件中发送和发送电子邮件