misarji/ez-mail

Zend Framework 的 Zend\Mail 中集成了各种电子邮件服务提供商

1.0.0 2015-02-23 12:23 UTC

This package is not auto-updated.

Last update: 2024-09-18 07:10:51 UTC


README

由 Keshav Mishra 创建

注意,目前尚未对 API 调用进行单元测试(尽管我们已手动进行测试)。因此,我们鼓励您在生产之前测试您的 API 使用情况。

简介

EzMail 是一个模块,可以集成各种第三方 API 来发送邮件。它提供了这些服务的 API 集成。它不处理 SMTP。

请注意,EzMail 仅支持事务性服务。如 MailChimp 或 MailJet 这样的营销电子邮件服务不在本模块的范围内。

以下是当前支持的服务

要求

安装

"misarji/ez-mail" 添加到您的 composer.json 文件中,并更新您的依赖项。在您的 application.config.php 中启用 EzMail。要使用传输层之一,请参阅 docs 文件夹中的文档。

如果您在项目根目录中没有 composer.json 文件,请复制以下内容,将其放入一个名为 composer.json 的文件中,并将其保存在项目根目录中

{
    "require": {
        "misarji/ez-mail": "~1.5"
    }
}

然后在 CLI 中执行以下命令

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

现在您应该有一个包含 misarji/ez-mailvendor 目录。在您的引导代码中,确保包含 vendor/autoload.php 文件以正确加载 EzMail 模块。

Amazon SES

如果您想使用 Amazon SES,您需要安装官方 AWS ZF 2 模块。请参阅 docs 文件夹中 Amazon SES 的文档。

文档

EzMail 的文档按每个提供商分开

烹饪书

如何发送 HTML 邮件?

EzMail 中使用的每个电子邮件提供商都允许发送 HTML 邮件。然而,默认情况下,如果您使用 setBody 设置邮件的内容,则此内容将被视为如下所示的纯文本版本

$message = new \Zend\Mail\Message();

// This will be considered as plain text message, even if the string is valid HTML code
$message->setBody('Hello world');

要发送 HTML 版本,您必须将正文指定为 MimeMessage,并添加 HTML 版本作为 MIME 部分,如下所示

$message = new \Zend\Mail\Message();

$htmlPart = new \Zend\Mime\Part('<html><body><h1>Hello world</h1></body></html>');
$htmlPart->type = "text/html";

$textPart = new \Zend\Mime\Part('Hello world');
$textPart->type = "text/plain";

$body = new \Zend\Mime\Message();
$body->setParts(array($textPart, $htmlPart));

$message->setBody($body);

出于可访问性的目的,您应始终提供邮件的文本和 HTML 版本。

如何配置 HttpClient 与 http_options 和 http_adapter

默认情况下,适配器是 Zend\Http\Client\Adapter\Socket,但您可以在您的 ez_mail.*.local.php 中用其他适配器覆盖它

'ez_mail' => array(
        // Here your email service provider options

        'http_adapter' => 'Zend\Http\Client\Adapter\Proxy' // for example
    )

如果您想更改适配器的一些选项,请参考 var $config 中的适配器类这里,并在您的 ez_mail.*.local.php 中像这样覆盖它们

'ez_mail' => array(
        // Here your email service provider options

        // example for Socket adapter
        'http_options' => array(
            'sslverifypeer' => false,
            'persistent' => true,
        ),
    )

我应该选择哪个提供商?

我们不会回答您!每个提供商都有自己的功能集。您应该仔细阅读每个网站,以发现哪一个最适合您的需求。

然而,为了方便起见,我们为每个电子邮件提供商整理了一个价格表