areeb-malik / email-boiler-plate
A basic template for emailing.
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: ^7.2.5|^8.0
This package is not auto-updated.
Last update: 2025-04-15 16:45:31 UTC
README
Composer command
composer require areeb-malik/email-boiler-plate
Publishing the configurations
php artisan vendor:publish --tag=CC-Emails
Installation command
php artisan install:email
Environment Variables
To run this project, you will need to add the following environment variables to your .env file
MAIL_MAILER
MAIL_HOST
MAIL_PORT
MAIL_USERNAME
MAIL_PASSWORD
MAIL_ENCRYPTION
After setting the environment variables, you can start your local development server and start sending mail by just clicking on the send button.
Code snippets
Sending an attachment
public function build()
{
$this->from($this->validator['sender'])
->subject($this->validator['subject'])
->to($this->validator['to'])
->attach(base_path('README.md'))
->markdown('emails.welcome');
return $this;
}
Sending multiple attachments
public function sendEmail()
{
$attachments = [
<attachment_1>,
<attachment_2>,
<attachment_3>,
];
$validator = [
'sender' => '<sender>',
'to' => '<receiver>',
'subject' => '<subject>',
'message' => '<message>',
'attachments' => $attachments
];
Mail::queue((new Emails($validator))->onQueue('emails'));
return "mail has been sent";
}
In the emails file
class Emails extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $validator;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($validator)
{
$this->validator = $validator;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->from($this->validator['sender'])
->subject($this->validator['subject'])
->to($this->validator['to'])
->markdown('emails.welcome');
foreach ($this->validator['attachments'] as $attachment) {
$this->attach($attachment);
}
return $this;
}