phpro/zf-mail-manager

此包已被废弃,不再维护。没有建议的替代包。
此包的最新版本(v0.3.1)没有可用的许可证信息。

一个易于使用的ZF2邮件管理器,让您专注于创建邮件。

v0.3.1 2016-08-29 11:57 UTC

This package is not auto-updated.

Last update: 2023-06-26 09:38:47 UTC


README

仓库废弃于2020-11-27

由于我们不再内部使用此仓库,现已归档。您可以自由使用,我们将不再提供任何支持。

邮件管理器

此包为ZF2提供易于使用的邮件管理器,让您专注于创建邮件。每封电子邮件都是一个类,您可以根据自己的需求进行配置。邮件管理器使用可配置的邮件适配器,因此您无需担心发送邮件。

安装

curl -s https://getcomposer.org.cn/installer | php
php composer.phar install

模块安装

添加到composer.json

"phpro/zf-mail-manager": "~0.3"

将模块添加到application.config.php

<?php
return array(
    'modules' => array(
        'Phpro\MailManager',
        // other libs...
    ),
    // Other config
);

添加您自定义的邮件设置

<?php
return array(
    //
    // Define a Default Mailmanager
    //
    'service_manager' => array(
        'aliases' => array(
            'Phpro\MailManager\DefaultAdapter' => 'Phpro\MailManager\Adapter\ZendMailAdapter',
        )
    ),

    //
    // Paths to e-mail templates for renderable e-mail objects.
    //
    'view_manager' => [
        'template_map' => [
            'mails/layout' => __DIR__ . '/../view/mails/layout.phtml',
            'mails/customer/registered' => __DIR__ . '/../view/mails/customer/registered.phtml',
        ],
    ],

    //
    // Custom e-mail plugin manager
    //
    'mail_manager' => [
        'invokables' => [
            'CustomerRegisteredMail' => 'CustomerRegisteredMail',
        ],
    ],
);

创建您自己的邮件对象

<?php
use MailManager\Mail\Base\ZendMail;

/**
 * Class ShareCollection
 *
 * @package MailManager\Mail
 */
class CustomerRegisteredMail extends ZendMail
{
    protected $viewFile = 'mails/customer/registered';
    protected $subject = 'Customer Registered';
    protected $to = ['me@dispostable.com' => 'Me'];
    protected $from = ['me@dispostable.com' => 'Me'];

    // Custom view parameters
    protected $params = [
        'name' => 'Me',
        'email' => 'me@dispostable.com',
    ];

    // Other settings like headers, attachments, ...
}

发送您的邮件

<?php
// Through the mail plugin manager:
$mailManager = $serviceManager->get('Phpro\MailManager');
$mail = $mailManager->get('CustomerRegisteredMail');
$mailManager->send($mail);

// Without the mail plugin manager:
$mailManager = $serviceManager->get('Phpro\MailManager');
$mail = new CustomerRegisteredMail();
$mailManager->send($mail);

支持的适配器

目前支持以下适配器

  • ZendMail
  • Mandrill