---
title: Email
icon: envelope
description: Set up the Email resource in Python.
---

## Dependencies

```bash
uv add aioimaplib aiosmtplib
```

For credential setup, see the [Email Setup](/home/setup/email) guide.

## Configuration

```python
import os
from mirage import Workspace, MountMode
from mirage.resource.email import EmailConfig, EmailResource

config = EmailConfig(
    imap_host=os.environ["IMAP_HOST"],
    smtp_host=os.environ["SMTP_HOST"],
    username=os.environ["EMAIL_USERNAME"],
    password=os.environ["EMAIL_PASSWORD"],
)
resource = EmailResource(config=config)
ws = Workspace({"/email/": resource}, mode=MountMode.READ)
```

### Verify Connection

```python
import asyncio

async def main():
    r = await ws.execute("ls /email/")
    print(await r.stdout_str())

asyncio.run(main())
```

This should print your IMAP folder names (e.g., `INBOX`, `Sent`,
`Drafts`, `Archive`).

## Config Reference

| Field       | Required | Default | Description              |
| ----------- | -------- | ------- | ------------------------ |
| `imap_host` | Yes      |         | IMAP server hostname     |
| `imap_port` | No       | `993`   | IMAP port                |
| `smtp_host` | Yes      |         | SMTP server hostname     |
| `smtp_port` | No       | `587`   | SMTP port                |
| `username`  | Yes      |         | Email address / login    |
| `password`  | Yes      |         | Password or app password |
| `use_ssl`   | No       | `True`  | Use SSL for IMAP         |
