Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/exonos/mailapi

MailAPI provides an API for email sending as a microservice
https://github.com/exonos/mailapi

api api-client api-rest exonhos exonos laravel laravel-framework laravel-package mailapi

Last synced: about 1 month ago
JSON representation

MailAPI provides an API for email sending as a microservice

Awesome Lists containing this project

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": "[email protected]",
"name": "John doe"
}
],
"subject": "Hi from {$company}",
"text": "test",
"html": "

{$company} is saying hi

testing html with {$company}

",
"variables": [
{
"email": "[email protected]",
"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 [[email protected]](mailto:[email protected]). We'll address the issue as promptly as possible.

## Credits

- [Abdiel Hernandez](https://github.com/exonos)

## 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.

[![Buy me a coffee](https://cdn.buymeacoffee.com/buttons/default-orange.png)](https://buymeacoffee.com/exonos)

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.



Made with ❤️ from Mexico