replace wordpress mailer with laravel's mailer
Diff
src/Mail/Mailer.php | 39 +++++++++++++++++++++++++++++++-
src/Mail/WordpressMailServiceProvider.php | 22 +++++++++++++++++-
src/Providers/KoseligServiceProvider.php | 2 ++-
src/Providers/WordpressServiceProvider.php | 1 +-
4 files changed, 64 insertions(+)
@@ -0,0 +1,39 @@
<?php
use Illuminate\Mail\Message;
use Illuminate\Support\Facades\Mail;
use Koselig\Support\Action;
if (!function_exists('wp_mail')) {
/**
* Override wp_mail to use the Laravel mailer.
*
* @param string|array $to Array or comma-separated list of email addresses to send message.
* @param string $subject Email subject
* @param string $message Message contents
* @param string|array $headers Optional. Additional headers.
* @param string|array $attachments Optional. Files to attach.
* @return bool Whether the email contents were sent successfully.
*/
function wp_mail($to, $subject, $message, $headers = '', $attachments = [])
{
list($to, $subject, $headers, $attachments) = array_values(
Action::filter('wp_mail', [$to, $subject, $message, $headers, $attachments])
);
Mail::raw($message, function (Message $message) use ($to, $subject, $headers, $attachments) {
$message->to($to)->subject($subject);
if (!is_array($attachments)) {
$attachments = explode("\n", str_replace("\r\n", "\n", $attachments));
}
$attachments = array_filter($attachments);
if (!empty($attachments)) {
foreach ($attachments as $attachment) {
$message->attach($attachment);
}
}
});
}
}
@@ -0,0 +1,22 @@
<?php
namespace Koselig\Mail;
use Illuminate\Support\ServiceProvider;
/**
*
*
* @author Jordan Doyle <jordan@doyle.wf>
*/
class WordpressMailServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function register()
{
include_once 'Mailer.php';
}
}
@@ -4,6 +4,7 @@ namespace Koselig\Providers;
use Illuminate\Support\ServiceProvider;
use Koselig\Auth\AuthServiceProvider;
use Koselig\Hashing\HashServiceProvider;
use Koselig\Mail\WordpressMailServiceProvider;
use Koselig\Routing\RoutingServiceProvider;
/**
@@ -21,6 +22,7 @@ class KoseligServiceProvider extends ServiceProvider
public function register()
{
// Generic service providers
$this->app->register(WordpressMailServiceProvider::class);
$this->app->register(WordpressServiceProvider::class);
$this->app->register(ConfigServiceProvider::class);
$this->app->register(QueryServiceProvider::class);
@@ -4,6 +4,7 @@ namespace Koselig\Providers;
use Illuminate\Contracts\Routing\UrlGenerator;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\ServiceProvider;
use Koselig\Mail\WordpressMailServiceProvider;
use Koselig\Support\Action;
use Koselig\Support\Wordpress;