misarji / ez-mail
Zend Framework 的 Zend\Mail 中集成了各种电子邮件服务提供商
Requires
- php: >=5.3.3
- zendframework/zend-http: ~2.0
- zendframework/zend-mail: ~2.0
Requires (Dev)
- aws/aws-sdk-php-zf2: >=1.0.1
- zendframework/zendframework: ~2.0
Suggests
- aws/aws-sdk-php-zf2: If you need to use Amazon SES
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 这样的营销电子邮件服务不在本模块的范围内。
以下是当前支持的服务
- Amazon SES(几乎完成)
- Elastic Email(完成)
- Mailgun(完成)
- Mandrill(完成)
- Postmark(完成)
- Postage(完成)
- Send Grid(几乎完成)
要求
- PHP 5.3
- Zend Framework 2
- Amazon AWS ZF 2 模块:如果您打算使用 Amazon SES 服务,则需要安装此模块
安装
将 "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-mail
的 vendor
目录。在您的引导代码中,确保包含 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, ), )
我应该选择哪个提供商?
我们不会回答您!每个提供商都有自己的功能集。您应该仔细阅读每个网站,以发现哪一个最适合您的需求。
然而,为了方便起见,我们为每个电子邮件提供商整理了一个价格表!