src/Mail/Mail.php
<?php
/*
* This file is part of the Legato package.
*
* (c) Osayawe Ogbemudia Terry <terry@devscreencast.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
*/
namespace Legato\Framework\Mail;
class Mail extends Message
{
/**
* The mail driver specified in .env file.
*
* @var
*/
public static $driver;
public static function setDriver()
{
return static::$driver = getenv('MAIL_DRIVER');
}
public static function getMailerClient()
{
self::setDriver();
switch (strtolower(static::$driver)) {
case 'smtp':
return new SMTPClient();
break;
case 'mailgun':
return new MailGunClient();
break;
default:
die('driver not found');
}
}
/**
* Send message using chosen driver.
*
* @param $params
*
* @return int|mixed
*/
public static function send($params)
{
$params = array_merge([
'subject' => '',
'view' => '',
'body' => '',
'bodyHtml' => '',
'to' => [],
'bcc' => [],
'cc' => [],
'replyTo' => [],
'file' => '',
], $params);
$message = (new static())->to($params['to'])->from($params['from'])
->subject($params['subject'])->bcc($params['bcc'])->cc($params['cc'])
->reply($params['replyTo']);
if ($params['view'] != '') {
$message->body(makeMail($params['view'], ['data' => $params['body']]), 'text/html');
} else {
$message->body($params['body']);
}
if ($params['file'] != '') {
$message->attachment($params['file']);
}
return self::getMailerClient()->send($message);
}
}