Easily send React Email emails with Laravel using this package.
First, install the package via Composer:
composer require maantje/react-emailThen, install the required Node dependencies:
npm install vendor/maantje/react-email- Install React Email using the automatic or manual setup.
- Create an email component in the
emailsdirectory (e.g.,new-user.tsx). Ensure the component is the default export.
Example email component:
import * as React from 'react';
import { Text, Html } from '@react-email/components';
export default function Email({ user }) {
return (
<Html>
<Text>Hello, {user.name}</Text>
</Html>
);
}- Define the email directory path in your Laravel
.envfile:
REACT_EMAIL_DIRECTORY="emails/directory/relative/from/laravel/root"- Generate a new Laravel Mailable class:
php artisan make:mail NewUser- Use
ReactMailViewin yourMailable, or extend yourMailablefrom `ReactMailable``
use App\Models\User;
use Maantje\ReactEmail\ReactMailable;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Mail\Mailables\Content;
use Maantje\ReactEmail\ReactMailView;
class NewUser extends ReactMailable // Extend, from \Maantje\ReactEmail\ReactMailable
{
use ReactMailView; // or use \Maantje\ReactEmail\ReactMailView
public function __construct(public User $user)
{
// Public properties will be passed as props to the React email component.
// Alternatively, use the `with` property of `content`.
}
public function envelope()
{
return new Envelope(
subject: 'New User',
);
}
public function content()
{
return new Content(
view: 'new-user', // Component filename without the extension
);
}
}Run tests using Pest:
./vendor/bin/pestIf you discover any security-related issues, please email the author instead of using the issue tracker.
This package is open-source and licensed under the MIT License. See the LICENSE file for details.~~