parfumix / mailer
基于 SwiftMailer 的邮件发送器。
dev-master
2017-07-21 08:23 UTC
Requires
- php: >=7.0.0
- monolog/monolog: 1.x-dev
- swiftmailer/swiftmailer: 5.x
This package is auto-updated.
Last update: 2024-09-19 21:44:34 UTC
README
Mailer 是一个基于 SwiftMailer 的简单包,允许使用不同的驱动发送消息。
安装
您可以使用 composer
包管理器进行安装。运行以下命令之一:
$ php composer.phar require parfumix/mailer "dev-master"
或添加
"parfumix/mailer": "dev-master"
到您的 composer.json 文件中
配置
如果您使用 DotEnv 包,只需填写您的 .env 文件。
MAIL_DRIVER=smtp // Allow to select transport MAIL_HOST=smtp.gmail.com MAIL_PORT=465 MAIL_USERNAME=your_gmail@gmail.com MAIL_PASSWORD=your_password MAIL_ENCRYPTION=ssl
并开始使用
$mailer = (new Mailer( new Mailer\Transport ))->alwaysFrom('your_email_always_from@gmail.com', 'Your name') ->alwaysReplyTo('reply_to@gmailcom', 'Reply name');
如果您使用其他存储库,您可以创建新的 Mailer 实例,并用数组中的配置数据填充
$config = array( 'driver' => 'smtp', 'host' => 'smtp.gmail.com', 'port' => 465, 'username' => 'you_email@gmail.com', 'password' => 'your_passwd', 'encryption' => 'ssl' ); $mailer = (new Mailer\Mailer( new Mailer\Transport( $config ) ))->alwaysFrom('your_email_always_from@gmail.com', 'Your name') ->alwaysReplyTo('reply_to@gmailcom', 'Reply name');
如果您想添加自定义传输,只需创建一个新的传输类,实现 TransportAble
class ArrayTransport extends Transport implements TransportAble { /** * {@inheritdoc} */ public function send(Swift_Mime_Message $message, &$failedRecipients = null) { $this->beforeSendPerformed($message); // Send your message return $this->numberOfRecipients($message); } }
并将驱动程序注册到传输类中。
$tranport = (new Mailer\Transport([ 'driver' => 'my_driver' ]))->extend('my_driver', function($transport) { return new ArrayTransport() }); $mailer = (new Mailer($tranport)) ->alwaysFrom('your_email_always_from@gmail.com', 'Your name') ->alwaysReplyTo('reply_to@gmailcom', 'Reply name');
用法
您可以直接使用 Mailer 并通过 ::to('to_email@gmail.com') 方法发送消息
$mailer->to('to_email@gmail.com', 'Subject') ->send('This is a test message'); $mailer->to('to_email@gmail.com', 'Subject')->send('Message body', null, function (\Mailer\Message $message) { return $message->setFrom('other_from_email@gmail.com'); });
或者您可以创建需要 build 方法的 Mailable 类
class NewPayment extends \Mailer\Mail implements \Mailer\Mailable { public function build() { $this->text('Body message'); } } $mailer->to(array( 'to_email@gmail.com' ))->send( new NewPayment('Subject message') );
您可以使用 with 方法更改驱动程序
$mailer->to('to_email@gmail.com', 'Subject') ->with('sendmail') ->send('This is a test message');