> ## Documentation Index
> Fetch the complete documentation index at: https://docs.talario.eu/llms.txt
> Use this file to discover all available pages before exploring further.

# Quickstart

> Receive your first email with Talario and deliver it to your application.

This guide sets up a receiving domain, a webhook endpoint and a route, and then sends a test message.

**1. Add a receiving domain**

In the dashboard, open your project, go to **Domains** and add a domain. We recommend a separate subdomain such as `inbound.example.com`.

Open the domain and choose **Set up receiving**. Talario shows two DNS records:

| Type | Host | Value |
| - | - | - |
| TXT | `_talario-receiving.inbound.example.com` | `talario-verification=…` |
| MX | `inbound.example.com` | `10 mail.talario.eu.` |

Publish both records at your DNS provider and choose **Check records**. Receiving needs only these two records. The sending records (DKIM, return path) are not required for a domain that only receives email.

> [!WARNING]
>
> If you change the MX record of your main domain, **all** of its incoming email goes to Talario instead of your mailboxes. Use a subdomain unless that is what you want.

**2. Add a webhook endpoint**

Go to **Webhooks** and choose **Add endpoint**. Enter the HTTPS URL of your application, for example `https://app.example.com/webhooks/talario`.

Talario generates a **signing secret** and shows it only once. Store it, together with the **key ID**, in the configuration of your application. You need both to [verify signatures](/webhooks/signatures).

**3. Add a route**

Open the domain again and choose **Add route** under **Routes**. For a first test:

* **Recipients:** an address such as `support@inbound.example.com`, or **All recipients**
* **Actions:** **Store** and **Webhook** with the endpoint from the previous step

Talario rejects messages for recipients without a matching route. See [Domains and routes](/receiving/domains-and-routes) for patterns, priorities and actions.

**4. Accept the webhook**

Your endpoint must [verify the signature](/webhooks/signatures), store the delivery durably and then answer with any `2xx` status. Every other answer, a redirect or a timeout leads to a retry.

A minimal Laravel route for a first test:

```php routes/api.php theme={null}
use App\Http\Middleware\VerifyTalarioWebhook;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;

Route::post('webhooks/talario', function (Request $request) {
    Log::info('Talario webhook', [
        'delivery_id' => $request->header('X-Talario-Delivery-Id'),
        'message_id' => $request->json('message.id') ?? $request->json('id'),
    ]);

    return response()->noContent();
})->middleware(VerifyTalarioWebhook::class);
```

For production, follow [Process webhooks reliably](/webhooks/processing).

**5. Send a test message**

Send an email to the address of your route. A few seconds later your endpoint receives a webhook. The dashboard lists the message under **Inbound** with its delivery state. For privacy, the dashboard never shows the content of received messages.

## Next steps

* [Create an API key](/authentication) with receiving access to list messages and create new download links.
* Read the [webhook payload](/webhooks/payload-v1) your endpoint receives.
* Read the [parsed content](/receiving/parsed-content) of a message without a MIME library.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.