atomjoy/proton

Proton html email for Laravel.

Installs: 626

Dependents: 1

Suggesters: 0

Security: 0

Stars: 16

Watchers: 1

Forks: 3

Open Issues: 0

Language:HTML

v2.2 2024-01-19 18:56 UTC

This package is auto-updated.

Last update: 2024-05-17 10:02:21 UTC


README

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' => 'user@laravel.com'
  ])->first();

  // Send email sample
  Mail::to('user@laravel.com')->send(new DefaultMail());

  // User reset password, use null for example
  Mail::to('user@laravel.com')->send(new PasswordMail($user, '321-XXX-123'));
  Mail::to('user@laravel.com')->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('user@laravel.com')->send(new RegisterMail($user));
  Mail::to('user@laravel.com')->locale('pl')->send(new RegisterMail($user));

  // Code email
  Mail::to('user@laravel.com')->send(new F2aMail($user, 888777));
  Mail::to('user@laravel.com')->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

proton-email.png

Activation email

proton-register.png

Password email

proton-password.png

2FA email

proton-f2a.png

Html email signature image

proton-signature.png

LICENSE

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