jeffreyvanrossum / wp-mail
Fluent API for sending emails.
0.1.1
2025-07-17 12:50 UTC
Requires
- php: ^8.0|^8.1|^8.2
- jeffreyvanrossum/wp-views: ^0.1.0
Requires (Dev)
- laravel/pint: ^1.4
- spatie/ray: ^1.36
README
WP Mail
For those wanting to send good looking WordPress emails with a fluent API.
Installation
composer require jeffreyvanrossum/wp-mail
Usage
You can either build your email using the builder pattern or you can use a view.
use Jeffreyvr\WPMail\Mail; Mail::make() ->to('jane@doe.com') ->subject('Hello') ->line(text: 'Hello there') ->button(text: 'Click me', url: 'https://vanrossum.dev') ->line(text: 'Kind regards, Jeffrey') ->send();
Available Methods
subject(string $subject)
- Set the email subjectto(string $email, string $name = '')
- Add recipientcc(string $email, string $name = '')
- Add CC recipientbcc(string $email, string $name = '')
- Add BCC recipientfrom(string $email, string $name = '')
- Set sender informationline(string|callable $text)
- Add a text line to the emailbutton(string $text, string $url)
- Add a call-to-action buttonview(string $path, array $data = [])
- Use a view templateplainText(string|callable $plainText)
- Set the plain text version of the emailunsubscribeUrl(string $unsubscribeUrl)
- Set the unsubscribe URLunsubscribeText(string $unsubscribeText)
- Set the unsubscribe textsend()
- Send the email
In the view you can use $mail
to access the mail object.
Want to schedule emails as a background job?
Take a look at wp-job-scheduler. Simply create a job and add the mail sending logic to the handle method.
Credits
Contributors
License
MIT. Please see the License File for more information.