Send HTML emails with Laravel Mailables using SMTP, Mailgun, or SES drivers.
Sending Mail
php artisan make:mail WelcomeEmail
class WelcomeEmail extends Mailable {
use Queueable, SerializesModels;
public function __construct(private User $user) {}
public function envelope(): Envelope {
return new Envelope(subject: "Welcome to MyApp!");
}
public function content(): Content {
return new Content(view: "emails.welcome",
with: ["user" => $this->user]);
}
}
// Send
Mail::to($user->email)->send(new WelcomeEmail($user));
Mail::to($user)->queue(new WelcomeEmail($user)); // via queue
Mail::to($user)->later(now()->addHours(1), new WelcomeEmail($user));
// .env
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=you@gmail.com
MAIL_ENCRYPTION=tls