fourlabs / gmail-bundle
Symfony 的 Gmail API 包装器
0.4.0
2018-08-01 16:01 UTC
Requires
- php: >=7.1
- google/apiclient: ~2.2.0
- swiftmailer/swiftmailer: ~5.4.0|~6.0.0
- symfony/config: ~2.8|~3.0|~3.1
- symfony/dependency-injection: ~2.8|~3.0|~3.1
- symfony/event-dispatcher: ~2.8|~3.0|~3.1
- symfony/form: ~2.8|~3.0|~3.1
- symfony/http-foundation: ~2.8|~3.0|~3.1
- symfony/http-kernel: ~2.8|~3.0|~3.1
- symfony/options-resolver: ~2.8|~3.0|~3.1
- symfony/routing: ~2.8|~3.0|~3.1
Requires (Dev)
- phpunit/phpunit: ~7.0
This package is auto-updated.
Last update: 2024-09-22 08:15:10 UTC
README
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 许可证授权。