knyk / mailbox-bundle
PhpImap\Mailbox Symfony集成。
2.0.0
2021-03-21 13:24 UTC
Requires
- php: >=7.4
- php-imap/php-imap: ^4.0
- symfony/dependency-injection: ~3.0|~4.0|~5.0
- symfony/framework-bundle: ~3.0|~4.0|~5.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpspec/phpspec: ^6.1
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5
This package is auto-updated.
Last update: 2024-09-21 22:05:05 UTC
README
为Symfony 3.x, 4.x和5.x提供的简单php-imap集成。
安装
1. Composer
从命令行运行
$ composer require knyk/mailbox-bundle
如果你使用Symfony Flex,你已经完成并可以转到配置部分;否则,你必须手动注册此扩展包。
2. 注册扩展包
如果你不使用Symfony Flex,你必须手动在你的AppKernel中注册此扩展包,通过添加扩展包声明。
class AppKernel extends Kernel { public function registerBundles() { $bundles = [ ... new Knyk\MailboxBundle\MailboxBundle(), ]; ... } }
配置
设置你的邮箱配置。如果你使用的是不带Symfony Flex的symfony 3.x,请在app/config/config.yml
中添加你的配置。如果你使用Symfony Flex,请打开config/packages/knyk_mailbox.yaml
并调整其内容。
以下是一个示例配置
mailbox: connections: example_connection: mailbox: "{localhost:993/imap/ssl/novalidate-cert}INBOX" username: "email@example.com" password: "password" another_connection: mailbox: "{localhost:143}INBOX" username: "username" password: "password" attachments_dir: "%kernel.root_dir%/../var/imap/attachments" server_encoding: "UTF-8"
用法
连接
你的配置中的所有连接将通过注入服务的方式获得访问权限,如下所示
App\YourService: arguments: $mailbox: '@knyk.mailbox.connection.example_connection'
自动注入
在你的控制器中
<?php namespace App\Controller; use Knyk\MailboxBundle\Factory\MailboxFactory; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; class IndexController extends AbstractController { public function indexAction(MailboxFactory $mailboxFactory) { $exampleConnection = $mailboxFactory->create('example_connection'); $anotherConnection = $mailboxFactory->create('another_connection'); ... } ... }
使用服务容器
在你的控制器中
<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class IndexController extends Controller { public function indexAction() { $exampleConnection = $this->get('Knyk\MailboxBundle\Factory\MailboxFactory')->create('example_connection'); $anotherConnection = $this->get('Knyk\MailboxBundle\Factory\MailboxFactory')->create('another_connection'); ... } ... }
从这一点开始,你可以使用由php-imap库提供的任何方法。例如
$exampleConnection = $this->get('Knyk\MailboxBundle\Factory\MailboxFactory')->create('example_connection'); $exampleConnection->getMailboxInfo();
测试
可以通过运行PHPUnit和phpspec测试来测试扩展包。
php vendor/bin/phpspec run
- 运行phpspec
php vendor/bin/phpunit tests/
- 运行phpunit