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

# Send without a domain (Identities)

> Send emails immediately without owning a domain or configuring DNS records using connected email identities.

# Send Without a Domain

Don't have a custom domain ready or want to start testing Mailofly immediately? You can use **Identities** as an alternative to setting up a custom domain.

An **Identity** allows you to connect an existing email account—such as a personal or Google Workspace Gmail account, or any custom SMTP server—and send emails directly through Mailofly's API, SDKs, or dashboard without touching DNS settings.

***

## When to Use an Identity vs. a Domain

| Feature | Verified Domain | Identity (Google / SMTP) |
| :- | :- | :- |
| **DNS Configuration** | Required (SPF, DKIM, DMARC, MX) | **None** (1-click OAuth or SMTP credentials) |
| **Setup Time** | 5–15 minutes (DNS propagation) | **Instant** (\< 1 minute) |
| **Sender Address** | Branded (e.g. `hi@yourcompany.com`) | Your mailbox address (e.g. `you@gmail.com`) |
| **Daily Volume** | High volume (platform capacity) | Provider limits (e.g. 500 emails/day on Gmail) |
| **Event Tracking** | Full lifecycle (Delivered, Bounced, Complained, Opened, Clicked) | **Limited** (Sent, Opened, Clicked only) |
| **Best For** | Production SaaS, apps, marketing campaigns | Prototyping, personal projects, fast onboarding |

***

## Important Limitations of Identities

While identities provide an instant way to begin sending emails, they have specific technical limitations compared to verified custom domains:

> [!WARNING]
>
> ### Event Tracking Differences: No Downstream Event Detection
>
> Unlike verified domains—which route through Mailofly's Amazon SES infrastructure and capture real-time delivery notifications, bounce codes, and spam complaints—identities send directly through your connected email provider.
>
> * **Supported Events**:
>   * **Sent**: Recorded when Mailofly hands the email off to your provider.
>   * **Opened**: Tracked via Mailofly's transparent 1x1 tracking pixel when the recipient loads images.
>   * **Clicked**: Tracked when the recipient clicks any link wrapped with Mailofly's click tracking redirect.
> * **Unsupported Events (Cannot be detected)**:
>   * **Delivered**: Mailbox providers (like Gmail or third-party SMTP servers) do not report remote server acceptance status (`250 2.0.0 OK`) back to Mailofly.
>   * **Bounced**: If the recipient address does not exist or has a full inbox, the bounce message (NDR) is sent back directly to your Gmail/mailbox inbox, **not** to Mailofly. Mailofly cannot detect or mark the message as bounced.
>   * **Complained**: If a recipient marks your email as spam in their email client, no Feedback Loop (FBL) webhook is returned to Mailofly.

> [!NOTE]
>
> ### Daily Sending Limits
>
> Mailofly tracks sends per identity according to provider quotas:
>
> * **Google (Gmail personal)**: 500 emails / day.
> * **Google Workspace**: Up to 2,000 emails / day (depending on your Google account tier).
> * **Custom SMTP**: Configurable in the dashboard (default 500 emails / day).
>
> Recipients sent after reaching your daily quota are marked as `deferred` and held until your quota resets at 00:00 UTC.

***

## Quick Setup Guide

**1. Go to Identities**

Navigate to **[Identities](https://www.mailofly.com/user/accounts)** in your Mailofly dashboard.

**2. Connect your account**

Click **Add Identity**:

* **Google**: Authenticate via 1-click Google OAuth to connect your `@gmail.com` or Google Workspace account.
* **Custom SMTP**: Enter your SMTP host, port (587 or 465), username, and password.

**3. Copy your Account Key**

Each connected identity displays an **Account Key** (`acc_...`). You can copy this key to target the identity explicitly in API calls, or simply use the connected email address as your `from` address.

***

## Sending Your First Email with an Identity

Once your identity is connected, you can send emails using either the connected email address in the `from` field or by specifying your `account_key`:

```bash cURL theme={null}
curl -X POST https://api.mailofly.com/emails \
  -H "Authorization: Bearer mf_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Alex <alex.developer@gmail.com>",
    "to": ["user@example.com"],
    "subject": "Hello from Mailofly!",
    "html": "<strong>Welcome!</strong> This email was sent via a connected Identity."
  }'
```

```typescript Node.js theme={null}
import { Mailofly } from "@mailofly/node";

const mailofly = new Mailofly("mf_live_your_api_key");

await mailofly.emails.send({
  from: "Alex <alex.developer@gmail.com>",
  to: "user@example.com",
  subject: "Hello from Mailofly!",
  html: "<strong>Welcome!</strong> This email was sent via a connected Identity.",
});
```

```python Python theme={null}
from mailofly import Mailofly

client = Mailofly(api_key="mf_live_your_api_key")

client.emails.send({
    "from": "Alex <alex.developer@gmail.com>",
    "to": "user@example.com",
    "subject": "Hello from Mailofly!",
    "html": "<strong>Welcome!</strong> This email was sent via a connected Identity.",
})
```

***

## Next Steps

When you are ready to send at scale, receive incoming mail, and monitor full delivery statuses (including bounces and complaints), you can easily add a custom domain:

* [Add and verify a custom domain](/docs/getting-started/add-domain.md)
* [Deep dive into Identities architecture](/docs/identities/how-it-sends.md)
* [Managing Identities in the Dashboard](/docs/identities/managing-identities.md)


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