proton icon indicating copy to clipboard operation
proton copied to clipboard

Laravel proton html email template blade components with email signature.

Proton html email template

Laravel proton html email template blade components.

Install package

composer create-project laravel/laravel:^10.0 email-app
cd email-app
composer require atomjoy/proton

Send email example

<?php
use App\Models\User;
use Proton\Mail\DefaultMail;
use Proton\Mail\RegisterMail;
use Proton\Mail\PasswordMail;
use Proton\Mail\F2aMail;

Route::get('/proton', function () {
  // User (required columns: id, name, code)
  // $user = User::first();

  $user = User::factory(1)->make([
    'email' => '[email protected]'
  ])->first();

  // Send email sample
  Mail::to('[email protected]')->send(new DefaultMail());

  // User reset password, use null for example
  Mail::to('[email protected]')->send(new PasswordMail($user, '321-XXX-123'));
  Mail::to('[email protected]')->locale('pl')->send(new PasswordMail($user, '321-XXX-123'));

  // User activation link (User model required columns: id, name, code), use null for example
  Mail::to('[email protected]')->send(new RegisterMail($user));
  Mail::to('[email protected]')->locale('pl')->send(new RegisterMail($user));

  // Code email
  Mail::to('[email protected]')->send(new F2aMail($user, 888777));
  Mail::to('[email protected]')->locale('pl')->send(new F2aMail($user, 888777));

  // Show example email view
  return view('proton::email.default');
  // return view('proton::email.password');
  // return view('proton::email.register');
  // return view('proton::email.signature');
  // return view('proton::email.f2a', ['user' => $user, 'password' => 888777]);
});

Edit email templates

# Edit package email views in resources/views/vendor/proton
php artisan vendor:publish --tag=proton-views --force

# Edit translations (optional)
php artisan vendor:publish --tag=proton-lang --force

# Copy images (optional)
php artisan vendor:publish --tag=proton-mail --force

# Create config file (optional)
php artisan vendor:publish --tag=proton-config --force

Create Laravel mail class

# Or create your own mail class
php artisan make:mail PromoMail

Email images

Example email

Activation email

Password email

2FA email

Html email signature image

LICENSE

This project is licensed under the terms of the GNU GPLv3 license.