areeb / email-service
Laravel package for email service
Installs: 2 009
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^8.0|^8.1|^8.2
- illuminate/database: ^8.0|^9.0|^10.0
- illuminate/http: ^8.0|^9.0|^10.0
- illuminate/queue: ^8.0|^9.0|^10.0
- illuminate/support: ^8.0|^9.0|^10.0
- nesbot/carbon: ^2.53.1|^2.63
- spatie/laravel-package-tools: ^1.9
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0
- pestphp/pest: ^1.23
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
README
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.