Initial release
This commit is contained in:
106
README.md
Normal file
106
README.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# LeadMail SDK for Laravel
|
||||
|
||||
Laravel package for sending emails and verifying email addresses through the [leadMail](https://mail.leadmagnet.dev) service.
|
||||
|
||||
## Requirements
|
||||
|
||||
- PHP 8.2+
|
||||
- Laravel 11 or 12
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
composer require leadm/leadmail
|
||||
```
|
||||
|
||||
Publish the config file:
|
||||
|
||||
```bash
|
||||
php artisan vendor:publish --provider="LeadM\LeadMail\LeadMailServiceProvider"
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Add these to your `.env`:
|
||||
|
||||
```env
|
||||
LEADMAIL_URL=https://mail.leadmagnet.dev
|
||||
LEADMAIL_TOKEN=lm_your_api_token_here
|
||||
```
|
||||
|
||||
Optional settings:
|
||||
|
||||
```env
|
||||
LEADMAIL_TIMEOUT=30
|
||||
LEADMAIL_VERIFY_SSL=true
|
||||
LEADMAIL_AUTO_TENANT=true
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
### Send Emails via Mail Driver
|
||||
|
||||
Set `leadmail` as your mail driver in `.env`:
|
||||
|
||||
```env
|
||||
MAIL_MAILER=leadmail
|
||||
```
|
||||
|
||||
Then use Laravel's `Mail` facade as usual:
|
||||
|
||||
```php
|
||||
Mail::to('user@example.com')->send(new WelcomeMail());
|
||||
```
|
||||
|
||||
### Send Emails via API
|
||||
|
||||
```php
|
||||
LeadMail::sendEmail([
|
||||
'from' => ['email' => 'hello@yourdomain.com', 'name' => 'Your App'],
|
||||
'to' => [['email' => 'user@example.com', 'name' => 'User']],
|
||||
'subject' => 'Welcome!',
|
||||
'html_body' => '<h1>Welcome to our app</h1>',
|
||||
]);
|
||||
```
|
||||
|
||||
### Verify Email Addresses
|
||||
|
||||
```php
|
||||
$result = LeadMail::verifyEmail('user@example.com');
|
||||
|
||||
if ($result['data']['valid']) {
|
||||
// Email is deliverable
|
||||
}
|
||||
```
|
||||
|
||||
### Validation Rule
|
||||
|
||||
Use the `leadmail_verify` rule in your form requests:
|
||||
|
||||
```php
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'email' => ['required', 'email', 'leadmail_verify'],
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
### Get Allowed Sender Domains
|
||||
|
||||
```php
|
||||
$domains = LeadMail::getDomains();
|
||||
// ['yourdomain.com', 'anotherdomain.com']
|
||||
```
|
||||
|
||||
## Multi-Tenancy
|
||||
|
||||
If your app uses [stancl/tenancy](https://tenancyforlaravel.com), the SDK automatically includes the current tenant ID in API requests via the `X-Tenant-Id` header. Disable this with:
|
||||
|
||||
```env
|
||||
LEADMAIL_AUTO_TENANT=false
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT
|
||||
Reference in New Issue
Block a user