PHPackages                             apsonex/letmesendemail-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. apsonex/letmesendemail-php

ActiveLibrary[API Development](/categories/api)

apsonex/letmesendemail-php
==========================

LetMeSendEmail PHP library.

1.0.1(4mo ago)00MITPHPPHP ^8.1.0CI passing

Since Jan 6Pushed 2mo agoCompare

[ Source](https://github.com/apsonex/letmesendemail-php)[ Packagist](https://packagist.org/packages/apsonex/letmesendemail-php)[ Docs](https://letmesend.email/)[ RSS](/packages/apsonex-letmesendemail-php/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (8)Dependencies (8)Versions (3)Used By (0)

LetMeSend.Email PHP SDK
=======================

[](#letmesendemail-php-sdk)

[![Tests](https://camo.githubusercontent.com/b48db36f1940cdc1d9030401d30b3924e6c70119ae802b485f7c7dd12747729f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f6170736f6e65782f6c65746d6573656e64656d61696c2d7068702f746573742d7068702e796d6c3f6c6162656c3d7465737473267374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d303030303030)](https://github.com/apsonex/letmesendemail-php/actions/workflows/test-php.yml)[![Packagist Downloads](https://camo.githubusercontent.com/1e1fe10d99d028da7da295663f4685b939fa34883d769d36cda90bedf4e381e1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6c65746d6573656e64656d61696c2f6c65746d6573656e64656d61696c2d7068703f7374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d303030303030)](https://packagist.org/packages/letmesendemail/letmesendemail-php)[![Packagist Version](https://camo.githubusercontent.com/fc30643fa2dd467ce8ccbec8f25010104dbac1a2a14f9818408d86cca474a311/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6c65746d6573656e64656d61696c2f6c65746d6573656e64656d61696c2d7068703f7374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d303030303030)](https://packagist.org/packages/letmesendemail/letmesendemail-php)[![License](https://camo.githubusercontent.com/6b580c3efc321850e4405dbb88bb54fafb133c7a7740d9f3bd4d4f56bfd34785/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6170736f6e65782f6c65746d6573656e64656d61696c2d7068703f636f6c6f723d396366267374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d303030303030)](https://github.com/apsonex/letmesendemail-php/blob/master/LICENSE)

Emails
------

[](#emails)

API to interact with emails

### List Emails

[](#list-emails)

List emails. List will return `\LetMeSendEmail\ValueObject\RestResponses\Email\ListResponse` instance. For pagination, don't use before and after together. Either use `before` or `after` at a time.

```
$client->email()->list(
	perPage: 20,
	// after: '',
	// before: '',
);
```

### Send Email

[](#send-email)

Send Email.

Attachment can be added in two ways. Either attach via `path` or inline base64 encoded file content. specify the type property to be either 'path' or 'content'

Email size can not exceed more that 40MB. For safety margin, keep size less then 38MB. Response will be `\LetMeSendEmail\ValueObject\RestResponses\Domain\StoreResponse`

```
$client->email()->send(
	from: 'John Doe ',
	to: 'Jane Doe ',
	replyTo: 'sara@example.com',
	cc: ['max@example.com'],
	bcc: ['eleven@example.com'],
	subject: 'Subject',
	html: 'Message',
	text: 'Message',
	attachments: [
		[
			'type' => 'path',
			'filename' => 'image.png',
			'mimeType' => 'image/png',
			'contentId' => '',
			'path' => 'https://file-source-url.com',
		],
		[
			'type' => 'content',
			'filename' => 'image.png',
			'mimeType' => 'image/png',
			'contentId' => '',
			'content' => '',
		],
	],
);
```

### Show Email

[](#show-email)

Retrieve email by id. `\LetMeSendEmail\ValueObject\RestResponses\Email\GetResponse` instance will be returned

```
$client->email()->get(
	id: '',
);
```

### Verify Email

[](#verify-email)

Check if email is valid. `\LetMeSendEmail\ValueObject\RestResponses\Email\VerifyResponse` instance will be returned

```
$client->email()->verify([
	'email' => 'john@example.com'
])->valid(); // bool
```

Domains
-------

[](#domains)

API to interact with domains

### List domains

[](#list-domains)

List domains. List will return `\LetMeSendEmail\ValueObject\RestResponses\Domain\ListResponse` instance. For pagination, don't use before and after together. Either use `before` or `after` at a time.

```
$client->domain()->list(
	perPage: 20,
	// before: '',
	// after: '',
);
```

### Retrieve domain

[](#retrieve-domain)

Retrieve domain by `ID` or `domain name`. `\LetMeSendEmail\ValueObject\RestResponses\Domain\GetResponse` instance will be returned

```
$client->email()->get(
	id: ' or ',
);
```

### Verify Domain

[](#verify-domain)

Check if domain is valid. `\LetMeSendEmail\ValueObject\RestResponses\Domain\VerifyResponse` instance will be returned If response is 200, we will simply mark domain verified. In case, domain doesn't exist or un-verified, it will throw not found status code This is useful, when you want to check users' domain status

```
$client->domain()->verify([
	'domain' => 'example.com'
])->verified(); // bool
```

Contacts
--------

[](#contacts)

API to interact with contacts

### List Contacts

[](#list-contacts)

List contacts. It will return `\LetMeSendEmail\ValueObject\RestResponses\Contact\ListResponse` instance. For pagination, don't use before and after together. Either use `before` or `after` at a time.

```
$client->contact()->list(
	perPage: 20,
	// before: '',
	// after: '',
)->ok();
```

### Create Contact

[](#create-contact)

Create new contact.

Response will be `\LetMeSendEmail\ValueObject\RestResponses\Contact\StoreResponse`

```
$client->contact()->create(
	email: 'john@example.com',
	first_name: 'John',
	last_name: 'Doe',
	phone: +11231231234,
	categories: [''],
	tags: [''],
)->ok();
```

### Show Contact

[](#show-contact)

Retrieve single contact by id. `\LetMeSendEmail\ValueObject\RestResponses\Contact\GetResponse` instance will be returned

```
$client->contact()->get(
	id: '',
)->ok();
```

### Update Contact

[](#update-contact)

Update given contact. `\LetMeSendEmail\ValueObject\RestResponses\Contact\UpdateResponse` instance will be returned

```
$client->contact()->update(
id: '',
payload: [
		'email' => 'john@example.com'
	]
)->updated(); // bool
```

### Delete Contact

[](#delete-contact)

Remove given contact. `\LetMeSendEmail\ValueObject\RestResponses\Contact\DeleteResponse` instance will be returned

```
$client->contact()->remove(
id: '',
)->deleted(); // bool
```

Contact Categories
------------------

[](#contact-categories)

API to interact with contact categories

### List Contact Categories

[](#list-contact-categories)

List contact categories. It will return `\LetMeSendEmail\ValueObject\RestResponses\ContactCategory\ListResponse` instance. For pagination, don't use before and after together. Either use `before` or `after` at a time.

```
$client->contactCategory()->list(
	perPage: 20,
	// before: '',
	// after: '',
)->ok();
```

### Create Contact Category

[](#create-contact-category)

Create new contact category. It will create new category, if `slug` with same name already exists, it will update the given category

Response will be `\LetMeSendEmail\ValueObject\RestResponses\ContactCategory\StoreResponse`

```
$client->contactCategory()->create(
	name: 'Category Name',
)->ok();
```

### Show Contact Category

[](#show-contact-category)

Retrieve single contact category by id. `\LetMeSendEmail\ValueObject\RestResponses\ContactCategory\GetResponse` instance will be returned

```
$client->contactCategory()->get(
	id: '',
)->ok();
```

### Update Contact Category

[](#update-contact-category)

Update given contact category. `\LetMeSendEmail\ValueObject\RestResponses\ContactCategory\UpdateResponse` instance will be returned

```
$client->contactCategory()->update(
id: '',
payload: [
		'name' => 'New Name',
		'slug' => 'new-name',
	]
)->updated(); // bool
```

### Delete Contact Category

[](#delete-contact-category)

Remove given contact category. `\LetMeSendEmail\ValueObject\RestResponses\ContactCategory\DeleteResponse` instance will be returned

```
$client->contactCategory()->remove(
id: '',
)->deleted(); // bool
```

Contact Tags
------------

[](#contact-tags)

API to interact with contact tags

### List Contact Tags

[](#list-contact-tags)

List contact tags. It will return `\LetMeSendEmail\ValueObject\RestResponses\ContactTag\ListResponse` instance. For pagination, don't use before and after together. Either use `before` or `after` at a time.

```
$client->contactTag()->list(
	perPage: 20,
	// before: '',
	// after: '',
)->ok();
```

### Create Contact Tag

[](#create-contact-tag)

Create new contact tag. It will create new tag, if `slug` with same name already exists, it will update the given tag

Response will be `\LetMeSendEmail\ValueObject\RestResponses\ContactTag\StoreResponse`

```
$client->contactTag()->create(
	name: 'Tag Name',
)->ok();
```

### Show Contact Tag

[](#show-contact-tag)

Retrieve single contact tag by id. `\LetMeSendEmail\ValueObject\RestResponses\ContactTag\GetResponse` instance will be returned

```
$client->contactTag()->get(
	id: '',
)->ok();
```

### Update Contact Tag

[](#update-contact-tag)

Update given contact tag. `\LetMeSendEmail\ValueObject\RestResponses\ContactTag\UpdateResponse` instance will be returned

```
$client->contactTag()->update(
id: '',
payload: [
		'name' => 'New Name',
		'slug' => 'new-name',
	]
)->updated(); // bool
```

### Delete Contact Tag

[](#delete-contact-tag)

Remove given contact tag. `\LetMeSendEmail\ValueObject\RestResponses\ContactTag\DeleteResponse` instance will be returned

```
$client->contactTag()->remove(
id: '',
)->deleted(); // bool
```

Webhook
-------

[](#webhook)

API to interact with webhook

### Verify Incoming Webhook

[](#verify-incoming-webhook)

You can verify incoming webhook from `letmesend.email`Use the `\LetMeSendEmail\Support\WebhookSignature::verify(...)` to execute verification

```
WebhookSignature::verify(
	payload: '{...}', // payload string (its the body of the request)
	headers: [...], // request headers array
	secret: '', // webhook signing secret
	tolerance: 300, // webhook tolerance
); // bool
```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance83

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity44

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

131d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/c01c7781cf9e16fbd9358743e58a0d1bf5802d5059d3b5245daf3165f7ceb06e?d=identicon)[apsonex](/maintainers/apsonex)

---

Top Contributors

[![gurindersingh](https://avatars.githubusercontent.com/u/6223752?v=4)](https://github.com/gurindersingh "gurindersingh (33 commits)")

---

Tags

phpapiclientsdkLetMeSendEmail

###  Code Quality

TestsPest

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/apsonex-letmesendemail-php/health.svg)

```
[![Health](https://phpackages.com/badges/apsonex-letmesendemail-php/health.svg)](https://phpackages.com/packages/apsonex-letmesendemail-php)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[kunalvarma05/dropbox-php-sdk

Dropbox PHP API V2 SDK (Unofficial)

3633.0M18](/packages/kunalvarma05-dropbox-php-sdk)[resend/resend-laravel

Resend for Laravel

1191.4M6](/packages/resend-resend-laravel)[resend/resend-php

Resend PHP library.

564.7M21](/packages/resend-resend-php)[mozex/anthropic-laravel

Anthropic PHP for Laravel is a supercharged PHP API client that allows you to interact with the Anthropic API

71226.4k1](/packages/mozex-anthropic-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
