shepherdmat / emaillabs-symfony-mailer

此扩展包提供了 Emaillabs 对 Symfony Mailer 的集成

v0.1.0 2021-11-07 11:17 UTC

This package is not auto-updated.

Last update: 2024-09-30 01:13:34 UTC


README

Emaillabs 提供 Symfony Mailer 集成。

安装

首选的安装方法是使用 [Composer][]。运行以下命令安装软件包并将其添加到项目的 composer.json

composer require shepherdmat/emaillabs-symfony-mailer

使用方法

Symfony 项目。

如果您想在标准的 Symfony 项目中使用它,很简单

向您的本地 .env 文件添加参数

# .env
MAILER_DSN=emaillabs://yourAppKey:yourSecretKey@yourActiveHostAccount.smtp

更新 services.yaml

# config/services.yaml
services:
    Shepherdmat\Symfony\Mailer\Emaillabs\Transport\EmaillabsTransportFactory:
        tags: [ 'mailer.transport_factory' ]

现在您可以参考官方 Symfony Mailer 网站的示例。

独立邮件发送器。

如果您想使用标准的 SymfonyHttpClient 作为 http 接口发送邮件

// require_once __DIR__ . './vendor/autoload.php';

use Shepherdmat\Mailer\Emaillabs\Transport\EmaillabsApiTransport;
use Shepherdmat\Mailer\Emaillabs\Transport\EmaillabsTransportFactory;
use Symfony\Component\HttpClient\HttpClient;
use Symfony\Component\Mailer\Transport\Dsn;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Email;

// Your active host account (https://panel.emaillabs.net.pl/pl/smtp).
$host = 'YOUR_ACCOUNT.smtp';

// Your App Key (https://panel.emaillabs.net.pl/pl/site/api).
$appKey = 'XXXXXXX';

// Your Secret Key (https://panel.emaillabs.net.pl/pl/site/api).
$appSecret = 'YYYYYYY';

$transportFactory = new EmaillabsTransportFactory(null, HttpClient::create());
$dsn = new Dsn(EmaillabsTransportFactory::SCHEME, $host, $appKey, $appSecret);

$mailer = new Mailer($transportFactory->create($dsn));

$message = (new Email())
    ->from('foo@bar.dev')
    ->to('bar@foo.dev')
    ->subject('Message title')
    ->html('<b>HTML message content</b>')
    ->text('Text message content')
    // Attachments are handled by default.
    ->attachFromPath('./path/to/attachment')
    ->embedFromPath('./path/to/attachment', 'embed_tag');
    

// If you want to pass some api parameters, use dedicated headers.
// (https://dev.emaillabs.io/#api-Send-new_sendmail)
$message->getHeaders()
    // Comma-separated list of tags.
    ->addTextHeader(EmaillabsApiTransport::HEADER_TAGS, 'tag1,tag2,tag3')
    // Custom template ID.
    ->addTextHeader(EmaillabsApiTransport::HEADER_TEMPLATE, 'template_id')
    // Custom return path.
    ->addTextHeader(EmaillabsApiTransport::HEADER_RETURN_PATH, 'return_path');

$mailer->send($message);

许可证

此扩展包受 MIT 许可证的保护。
有关完整的版权信息,请参阅与此源代码一起分发的 LICENSE 文件。