PHP code example of tobmoeller / laravel-mail-allowlist
1. Go to this page and download the library: Download tobmoeller/laravel-mail-allowlist library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
tobmoeller / laravel-mail-allowlist example snippets
'pipeline' => [
ToFilter::class;
EnsureRecipients::class; // stops further execution when no recipients remain
CcFilter::class;
// BccFilter::class; // disabled
],
use Closure;
use TobMoeller\LaravelMailAllowlist\MailMiddleware\MailMiddlewareContract;
use TobMoeller\LaravelMailAllowlist\MailMiddleware\MessageContext;
class CancelMessageMiddleware implements MailMiddlewareContract
{
public function handle(MessageContext $messageContext, Closure $next): mixed
{
if ($customCondition) {
// Indicate that the message should be canceled
$messageContext->cancelSendingMessage('Custom reason');
// Prevent execution of following middleware
return null;
}
return $next($messageContext);
}
}
'pipeline' => [
// Upstream middleware
\App\Mail\Middleware\CancelMessageMiddleware::class, // As a class-string.
new \App\Mail\Middleware\CancelMessageMiddleware(), // As an instance
// Downstream middleware
],
use Closure;
use TobMoeller\LaravelMailAllowlist\MailSentMiddleware\MailSentMiddlewareContract;
use TobMoeller\LaravelMailAllowlist\MailSentMiddleware\SentMessageContext;
class CustomSentMessageMiddleware implements MailSentMiddlewareContract
{
public function handle(SentMessageContext $messageContext, Closure $next): mixed
{
// custom code
return $next($messageContext);
}
}
use TobMoeller\LaravelMailAllowlist\Actions\Logs\GenerateLogMessageContract;
use TobMoeller\LaravelMailAllowlist\Facades\LaravelMailAllowlist;
use TobMoeller\LaravelMailAllowlist\MailMiddleware\MessageContext;
class CustomLogMessage implements GenerateLogMessageContract
{
public function generate(MessageContext $messageContext): string
{
// Generate your own log message
}
}
use TobMoeller\LaravelMailAllowlist\Actions\Logs\LogMessageContract;
use TobMoeller\LaravelMailAllowlist\Facades\LaravelMailAllowlist;
use TobMoeller\LaravelMailAllowlist\MailMiddleware\MessageContext;
class CustomMessageLogging implements LogMessageContract
{
/**
* Optional:
* Inject the message generator into your class to use the default
* message generation (is resolved by the service container)
*/
public function __construct(
public GenerateLogMessageContract $generateLogMessage
) {}
public function log(MessageContext $messageContext): void
{
// Handle logging yourself
}
}
use TobMoeller\LaravelMailAllowlist\Actions\Logs\GenerateLogMessageContract;
use TobMoeller\LaravelMailAllowlist\Actions\Logs\LogMessageContract;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
// Bind the custom log message generator
$this->app->bind(GenerateLogMessageContract::class, CustomLogMessage::class);
// Bind the custom log handler
$this->app->bind(LogMessageContract::class, CustomMessageLogging::class);
}
}
use TobMoeller\LaravelMailAllowlist\Actions\Logs\GenerateSentLogMessageContract;
use TobMoeller\LaravelMailAllowlist\Actions\Logs\SentLogMessageContract;
class AppServiceProvider extends ServiceProvider
{
public function register()
{
// Bind the custom log message generator
$this->app->bind(GenerateSentLogMessageContract::class, CustomSentLogMessage::class);
// Bind the custom log handler
$this->app->bind(SentLogMessageContract::class, CustomSentMessageLogging::class);
}
}