代码之家  ›  专栏  ›  技术社区  ›  code-8

如何根据收到的电子邮件在数据库中创建一个记录到我的网站?

  •  0
  • code-8  · 技术社区  · 4 年前

    我的投资组合有Laravel网络应用程序。 https://www.bunlongheng.com

    在投资组合部分,您将看到

    enter image description here

    现在,我有一个CRUD用于管理,只是为了创建它们,但我想到了一个想法。。。

    我想创建这个自动电子邮件,只是给自己发电子邮件,为数据库创建一个新记录。

    实例

    任何人发送电子邮件至: portfolio@bunlongheng.com

    主题:投资组合名称 正文:

    1. 任务1
    2. 任务2
    3. 任务3

    带附件:2张图片(示例)

    目标:

    我想接受并解析该电子邮件,并创建一个新的投资组合记录

    • 主题=标题
    • Body=说明
    • 附件=公文包图像

    enter image description here

    我该如何开始?

    0 回复  |  直到 4 年前
        1
  •  2
  •   O. Jones    4 年前

    对于堆栈溢出的回答来说,这是一个太大的主题。

    一些起点:

    1. 您需要一个可通过访问的邮箱 IMAP 或 POP3 。(SMTP用于出站邮件。您可以实现SMTP 服务器 处理传入的消息,但正确地做到这一点是一项非常艰巨的编程和网络工程工作,不值得麻烦。)

      编辑 您需要在某个电子邮件服务器上创建该邮箱;哪一个并不重要。您可以使用gmail或outlook或您自己域的电子邮件。你可以 myappinbox@code-8.com (如果 code-8.com 是您的域名obv)或 someRandomThingOrOther@gmail.com 。然后,您将软件设置为与服务的IMAP或POP3服务进行通信。如果是商业服务,您可以要求他们提供IMAP或POP3连接的详细信息。(这是正常的事情;他们可能有一个帮助页面。)

      一个可能对你有帮助的小技巧。如果邮箱是 inbox@code-8.com 您可以将消息发送到 inbox+tag@code-8.com 和 inbox+anotherTag@code-8.com ,在 + ,并且它们都转到同一个邮箱。因此,只需告诉不同的发件人将邮件发送到带有不同标签的邮箱,就可以设置传入邮件的类别。

    2. 您需要一个php程序,它会每隔一段时间轮询(访问)该邮箱以查找新邮件。按照接收电子邮件的工作方式,您需要从邮箱中提取电子邮件。

    3. php程序应该使用 php IMAP / POP3 APIs .API称为IMAP,但它处理两种协议。

    4. 它将使用这些API来获取和解码消息。

    5. 然后,您可以编写php代码来解析消息中所需的格式,并按照您想要的方式进行处理。

    还有一些免费的开源Laravel软件包, like this one ,来完成此任务。最好使用其中一个。准确地获取IMAP或POP3代码是很棘手的,尤其是在处理完传入邮件后删除它们的领域。如果你自己做,你将承担一个混乱的测试负担。(有时问我是怎么知道的。)