firesphere / mailjet-mailer
银Stripe版的Mailjet邮件发送器
0.0.3
2023-11-25 07:43 UTC
Requires
- mailjet/mailjet-apiv3-php: ^1.5.8
- silverstripe/framework: ^4.3
README
使用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);