exonos / mailapi
Transactional email as a microservice for Laravel
Requires
- php: ^8.1
- laravel/framework: ^9.0 || ^10.0
This package is auto-updated.
Last update: 2024-11-03 04:55:25 UTC
README
MailAPI
Meet MailAPI
MailAPI is a Laravel package that provides an API for email sending as a microservice, designed to efficiently handle multiple email clients without the need to repeat configurations. This tool allows businesses to centrally and seamlessly manage their transactional emails, offering a robust and scalable solution for customer communication.
Key Features:
-
Email Sending Microservice: MailAPI is conceived as a microservice, enabling easy integration with various applications and services, optimizing email management from a single platform.
-
Centralized Configuration: Eliminates configuration redundancy by centralizing all email sending settings in one place. This simplifies administration and reduces configuration errors.
-
Queues and Jobs: Implements queues and jobs for email sending, ensuring efficient delivery of messages and optimally handling large volumes of emails.
-
Logging and Monitoring: Includes features for logging and monitoring sent emails, allowing businesses to track the status and history of emails, as well as manage errors and exceptions.
Project setup
Install all dependencies
composer require exonos\mailapi
Run all migrations
php artisan migrate
To send a mail, create a client, this generates a secret that is used in the API.
php artisan mail:client
Send a POST request to http://{your local address}/api/v1/email with the payload
{
"from": "father doe",
"to": [
{
"email": "john@doe.com",
"name": "John doe"
}
],
"subject": "Hi from {$company}",
"text": "test",
"html": "<h1>{$company} is saying hi</h1><p>testing html with {$company}</p>",
"variables": [
{
"email": "john@doe.com",
"substitutions": [
{
"var": "company",
"value": "MailAPI"
}
]
}
],
"attachments" : [
{
"filename" : "test.jpg",
"content" : "base 64 file content"
}
]
}
With Headers
secret: {generated secret}
Accept: application/json
Note
- attachments is optional
- You can either send a text or a html not both
- The package will take the default credentials of the Laravel application defined in the .env, make sure to configure your connection correctly.
- if you add a variable kindly provide it's substitution, if this is not done nothing will be substituted and ignored from recipients.
Security Vulnerabilities
If you discover a security vulnerability in MailAPI, please help us maintain the security of this project by responsibly disclosing it to us. To report a security vulnerability, please send an email to hh.abdiel@gmail.com. We'll address the issue as promptly as possible.
Credits
Support My Work
If you find MailAPI helpful and would like to support my work, you can buy me a coffee. Your support will help keep this project alive and thriving. It's a small token of appreciation that goes a long way.
License
The MIT License (MIT). Please see License File for more information.
Made with ❤️ from Mexico