areeb/email-service

Laravel package for email service
6,004 1
Install
composer require areeb/email-service
Latest Version:1.0.0
PHP:^8.0|^8.1|^8.2
License:MIT
Last Updated:Feb 26, 2024
Links: GitHub  ·  Packagist
Maintainer: husseinzaher

Areeb mail service

This package adds state support to models.

To give you a feel about how this package can be used, let's look at a quick example.

Installation

You can install the package via composer:

composer require areeb/email-service

You can publish the config file with:

php artisan vendor:publish --provider="Areeb\EmailService\EmailServiceServiceProvider" --tag="email-service-config"
use Areeb\EmailService\Contracts\EmailReceiverAble;
use Areeb\EmailService\Traits\HasEmailReceiver;

class User extends Model implements EmailReceiverAble
{
    use HasEmailReceiver;

}
<?php

use Areeb\EmailService\Channels\MailServiceChannel;
use Areeb\EmailService\Classes\Attachments;
use Areeb\EmailService\Contracts\EmailServiceAble;
use Areeb\EmailService\DTO\EmailDTO;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;

class NotificationClass extends \Illuminate\Auth\Notifications\VerifyEmail implements ShouldQueue, EmailServiceAble
{
    use Queueable;

    public function via($notifiable)
    {

        return [MailServiceChannel::class];
    }

    protected function buildMailMessage($url)
    {
        return (new MailMessage())
            ->subject('Welcome!')
            ->markdown('emails.verify', ['url' => $url]);
    }

    public function toMailService($notifiable, EmailServiceAble $notification): EmailDTO
    {

        $attachments = Attachments::instance();
        $attachments -> addFile('test.png',
            'https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png');

        $emailTemplate = new VerifyEmailTemplate();

        return EmailDTO::instance(
            subject: __('notification.verify-email'),
            template: $emailTemplate,
            to: $notifiable,
            attachments: $attachments
        );
    }
}

License

The MIT License (MIT). Please see License File for more information.

Related Packages

flameplace/sendpulse-laravel

Laravel Package for Sendpulse API. Provides easy access to the sendpulse/sendpul...

1,215 0
dvomaks/laravel-sendpulse

A minimal service provider to set up and use the SendPulse PHP library in Larave...

2,663 1
wensleydale/sendpulse-laravel

A minimal service provider to set up and use the SendPulse PHP library in Larave...

4,387 7
php-tmdb/laravel

Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the...

53,315 160
kavenegar/laravel

laravel 4 and 5 kavenegar integration

368,693 86