firesphere/mailjet-mailer

银Stripe版的Mailjet邮件发送器

0.0.3 2023-11-25 07:43 UTC

This package is auto-updated.

Last update: 2024-08-25 10:29:13 UTC


README

GPL v3或更高版本

使用Mailjet API发送邮件的简单邮件模块。

要求

  • silverstripe/cms ^4.3.x
  • silverstripe/framework ^4.3.x
  • mailjet/mailjet-apiv3-php "^1.5.8

安装

composer require firesphere/mailjet-mailer

配置

将以下内容添加到您的.env

SS_MAILJET_KEY="YOURMAILJETKEY"
SS_MAILJET_SECRET="YOURMAILJETSECRET"

用法

只需使用SilverStripe框架提供的Email类即可

$email = new SilverStripe\Control\Email\Email();
$email->setFrom('from@example.com', 'John Doe');
$email->setTo('to@example.com', 'Jane Doe');
$email->setSubject('This is a test email');
$email->setBody('Hello there, this was sent using Mailjet');
$email->addAttachment('path/to/file.pdf', 'document.pdf');
$email->send();

这就足够了。

开发模式使用

如果在开发模式下,您仍然想使用Mailjet邮件发送器,但不想发送实际邮件,请将send标志设置为false

通过PHP

new \Firesphere\Mailjet\Service\MailjetMailer(false);

$mailer = (new \Firesphere\Mailjet\Service\MailjetMailer())->setSend(false);

通过YML

SilverStripe\Core\Injector\Injector:
  Firesphere\Mailjet\Service\MailjetMailer:
    constructor:
      - false

使用SandboxMode

避免实际发送邮件的另一选项是使用SandboxMode。

这将走完整个Mailjet流程,但Mailjet不会主动发送邮件,而会像发送了一样响应。

设置Sandbox模式的途径

$mailer = (new \Firesphere\Mailjet\Service\MailjetMailer())->setSandbox(true);
SilverStripe\Core\Injector\Injector:
  Firesphere\Mailjet\Service\MailjetMailer:
    constructor:
      - true
      - true   

高级用法

Mailjet允许在一次请求中发送多封邮件。为此,直接使用MailjetMailer并给它一个Email对象数组。

例如。

$mails = [
    $mail1 = Email::create('to@example.com', 'from@example.com', 'Subject', 'Body'); // 
    $mail2 = Email::create('to@example.com', 'from@example.com', 'Subject', 'Body'); // 
];

(new \Firesphere\Mailjet\Service\MailjetMailer())->send($mails);