> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mailofly.com/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.
</Warning>

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

***

## Quick Setup Guide

<Steps>
  <Step title="Go to Identities">
    Navigate to **[Identities](https://www.mailofly.com/user/accounts)** in your Mailofly dashboard.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.
  </Step>
</Steps>

***

## 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`:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.mailofly.com/api/v1/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";

  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.",
  })
  ```
</CodeGroup>

***

## 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](/getting-started/add-domain)
* [Deep dive into Identities architecture](/identities/how-it-sends)
* [Managing Identities in the Dashboard](/identities/managing-identities)


## Related topics

- [How Identities Send](/identities/how-it-sends.md)
- [Managing Identities](/identities/managing-identities.md)
- [mailofly.dev Domain Error](/guides/domains/mailofly-dev-domain-error.md)
- [Add domain](/getting-started/add-domain.md)
- [Introduction](/identities/introduction.md)
