fourlabs/gmail-bundle

Symfony 的 Gmail API 包装器

0.4.0 2018-08-01 16:01 UTC

This package is auto-updated.

Last update: 2024-09-22 08:15:10 UTC


README

StyleCI SensioLabsInsight

GmailBundle 允许您管理 Google Apps 域的邮箱(您可以挑选其中之一)。为了做到这一点,您必须授权一个 具有域内代理的全域服务帐户

安装

    $ composer require fourlabs/gmail-bundle

配置

// app/config/config.yml
fl_gmail:
    admin_user_email: tech@slv.global
    json_key_location: /var/www/symfony/app/config/service_account_private_key.json
    gmail_message_class: \AppBundle\Entity\GmailMessage
    gmail_label_class: \AppBundle\Entity\GmailLabel
    gmail_history_class: \AppBundle\Entity\GmailHistory
    gmail_ids_class: \AppBundle\Entity\GmailIds
    
swiftmailer:
    default_mailer: general_mailer
    mailers:
        general_mailer:
            transport: "%mailer_transport%"
            host:      "%mailer_host%"
            username:  "%mailer_user%"
            password:  "%mailer_password%"
            spool:     { type: memory }
        fl_gmail_api_mailer:
            transport: fl_gmail.swift_transport

同步 Gmail Ids(即需要同步哪些电子邮件?)

FL\GmailBundle\Services\SyncGmailIds

  • 接受一个 $userId 参数。
  • 获取所有 Gmail Ids 的列表,或根据历史 Id 的 Gmail Ids 的子集。 什么是历史 Id?
  • 通过 FL\GmailBundle\Event\GmailSyncIdsEvent 分发一个包含所有新/更新 Ids 的列表。(更新的 Gmail Ids = 标签更改)
  • 保存从该事件中来的 Gmail Ids 是您的责任。
  • 分发 FL\GmailBundle\Event\GmailSyncHistoryEvent,以便下次您可以执行部分同步。 什么是部分同步?
  • 保存从该事件中来的历史 Id 是您的责任。

使用 Gmail Ids 同步消息(即我知道哪些电子邮件需要同步,让我们获取它们。)

FL\GmailBundle\Services\SyncMessages

  • 此服务接受一个 Gmail Ids 列表,并为您解析所有新/更新的消息。
  • 例如,使用从 FL\GmailBundle\Services\SyncGmailIds 获取的 Ids。
  • 分发 FL\GmailBundle\Event\GmailSyncMessagesEvent
  • 保存从该事件中来的 Gmail 消息是您的责任。
  • 删除您之前使用 FL\GmailBundle\Services\SyncGmailIds 保存的新同步 Gmail Ids 是您的责任。

这么多责任? 😢 😭

为什么有这么多 这是您的责任 的声明?因为此包是存储无关的。但不要担心!有一个 GmailDoctrineBundle 可以为您在 Doctrine 中实现所有这些。

如何深入了解此包?

  • 首先查看 模型 类。
  • 要了解服务,请查看 Resources/config/services.yml

还有其他什么内容?

  • 您可以通过 FL\GmailBundle\Swift\GmailApiTransport 发送 swiftmailer 电子邮件。只需确保来自您的域即可。
  • FL\GmailBundle\Form\Type\InboxType 包含一个选择类型,其中包含已认证域中的所有邮箱。

许可证

GmailBundle 根据 MIT 许可证授权。