massimo-filippi/mail-module

ZF3 电子邮件通信模块

1.3 2023-05-03 13:17 UTC

README

ZF3 电子邮件通信模块

Packagist License

介绍

稍后将提供更多信息...

安装

1. 通过 Composer 安装

通过 Composer 安装最新稳定版本

composer require massimo-filippi/mail-module

通过 Composer 安装最新开发版本

composer require massimo-filippi/mail-module:dev-develop

2. 在您的应用程序中启用模块

Composer 应该在安装过程中自动在您的项目中启用 MassimoFilippi\MailModule

如果它没有这样做,您可以通过将值 'MassimoFilippi\MailModule' 添加到文件 config/modules.config.php 中的数组中手动启用模块。最后,它应该看起来像下面的 PHP 数组。

如果您不想将此包用作 Zend Framework 模块,则无需使用。

<?php

/**
 * List of enabled modules for this application.
 *
 * This should be an array of module namespaces used in the application.
 */
return [
    'Zend\Mail',
    'Zend\Router',
    'Zend\Validator',
    'MassimoFilippi\MailModule', // Add this line, ideally before Application module.
    'Application',
];

3. 设置您的配置

在此阶段,您可以使用 2 个服务: SparkPostMailjet。下面是我的 config/autoload/local.php 文件的示例。

使用 MailjetAdapter

<?php

return [
    // Config array for modules in MassimoFilippi namespace (our modules).
    'massimo_filippi' => [
        
        // Config array for MailModule.
        'mail_module' => [
            
            // Adapter you want to use.
            'adapter' => \MassimoFilippi\MailModule\Adapter\Mailjet\MailjetAdapter::class,
            
            // Adapter's parameters needed to create adapter's instance (e.g., api key or password).
            'adapter_params' => [
                'api_key' => '---API-KEY---',
                'api_secret' => '---API-SECRET---',
                'sandbox_mode' => false, // will not send email if true, but API will response
            ],
        ],
    ],
];

使用 SparkPostAdapter

<?php

return [
    // Config array for modules in MassimoFilippi namespace (our modules).
    'massimo_filippi' => [
        
        // Config array for MailModule.
        'mail_module' => [
            
            // Adapter you want to use.
            'adapter' => \MassimoFilippi\MailModule\Adapter\SparkPost\SparkPostAdapter::class,
            
            // Adapter's parameters needed to create adapter's instance (e.g., api key or password).
            'adapter_params' => [
                'api_key' => '---API-KEY---',
            ],
        ],
    ],
];

使用 SparkPostSmtpAdapter

<?php

return [
    // Config array for modules in MassimoFilippi namespace (our modules).
    'massimo_filippi' => [
        
        // Config array for MailModule.
        'mail_module' => [
            
            // Adapter you want to use.
            'adapter' => \MassimoFilippi\MailModule\Adapter\SparkPost\SparkPostSmtpAdapter::class,
            
            // Adapter's parameters needed to create adapter's instance (e.g., api key or password).
            'adapter_params' => [
                'api_key' => '---SMTP-API-KEY---',
            ],
        ],
    ],
];

用法

在业务逻辑类中某个位置。使用方式始终相同。

<?php 

use MassimoFilippi\MailModule\Model\Message\Message;
use MassimoFilippi\MailModule\Model\Recipient\Recipient;
use MassimoFilippi\MailModule\Model\Sender\Sender;

try {   
    // Remember that some services need sender's email address enabled first!
    $sender = new Sender('no-reply@example.com', 'Example.com');
     
    $recipient = new Recipient('john.doe@gmail.com');
    $recipient->setName('John Doe');
     
    $message = new Message($sender, $recipient);
     
    $message->setSubject('Test');
     
    $message->setMessage('Hello World!');
     
    $this->mailService->sendMail($message);
} catch (\Exception $exception) {
    var_dump($exception->getMessage());
}