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

# Emails

> Send emails and validate email addresses with the MailGlyph Python SDK.

Use a **secret key** client for all email methods.

```python theme={null}
from mailglyph import MailGlyph

client = MailGlyph("sk_your_secret_key")
```

## Send with basic HTML (`emails.send`)

```python theme={null}
result = client.emails.send(
    to="user@example.com",
    from_={"name": "MailGlyph Demo", "email": "hello@your-verified-domain.com"},
    subject="Welcome",
    body="<h1>Hello</h1><p>Your SDK setup is working.</p>",
)

print(result.timestamp)
print(result.emails[0].email)
```

## Send to multiple recipients

`to` supports strings, recipient objects, or both:

```python theme={null}
client.emails.send(
    to=["one@example.com", {"name": "Two", "email": "two@example.com"}],
    from_="hello@your-verified-domain.com",
    subject="Product update",
    body="<p>New features are live.</p>",
)
```

## Send with template and data

```python theme={null}
client.emails.send(
    to="user@example.com",
    from_="hello@your-verified-domain.com",
    template="tmpl_123",
    data={"firstName": "John", "plan": "premium"},
)
```

## Send with attachments

Attachment content should be Base64-encoded:

```python theme={null}
client.emails.send(
    to="user@example.com",
    from_="billing@your-verified-domain.com",
    subject="Your invoice",
    body="<p>Invoice attached.</p>",
    attachments=[
        {
            "filename": "invoice.pdf",
            "content": "JVBERi0xLjQKJ...",
            "contentType": "application/pdf",
        }
    ],
)
```

## Send with advanced options

```python theme={null}
client.emails.send(
    to={"name": "Jane Doe", "email": "jane@example.com"},
    from_={"name": "Growth Team", "email": "hello@your-verified-domain.com"},
    subject="Release notes",
    body="<p>Monthly update.</p>",
    reply="support@your-verified-domain.com",
    name="Monthly newsletter",
    subscribed=True,
    headers={"X-Campaign-Id": "monthly-2026-03"},
)
```

## Handle typo suggestions

```python theme={null}
verification = client.emails.verify("user@gmial.com")

if verification.is_typo and verification.suggested_email:
    print("Did you mean:", verification.suggested_email)
```

## Async equivalents

`AsyncMailGlyph` exposes the same method names and parameters:

```python theme={null}
from mailglyph import AsyncMailGlyph


async def run() -> None:
    async with AsyncMailGlyph("sk_your_secret_key") as client:
        await client.emails.send(
            to="user@example.com",
            from_="hello@your-verified-domain.com",
            subject="Hello",
            body="<p>Async send</p>",
        )
        verification = await client.emails.verify("user@gmail.com")
        print(verification.valid)
```

For bulk validation, credits, and ledger examples, see [Python Email Validation](https://docs.mailglyph.com/sdks/python/email-validation.md).

See full endpoint details in the [Send email API reference](https://docs.mailglyph.com/api-reference/public-api/sendEmail.md) and [Email Validation API reference](https://docs.mailglyph.com/api-reference/verifications/verifyEmail.md).


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