Metadata-Version: 2.4
Name: moemail
Version: 0.1.0
Summary: MoeMail 临时邮箱 API 的 Python SDK
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: httpx>=0.25.0
Requires-Dist: pydantic>=2.0.0
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
Requires-Dist: respx>=0.20; extra == "dev"

# MoeMail Python SDK

MoeMail 临时邮箱 API 的 Python SDK，支持同步和异步调用。

## 安装

```bash
pip install -e .
```

## 快速开始

### 同步用法

```python
from moemail import MoeMail

client = MoeMail(
    base_url="https://your-moemail.com",
    api_key="your-api-key",
    domain="moemail.app",  # 可选，不指定则随机
)

# 获取系统配置
config = client.get_config()
print("可用域名:", config.email_domains)

# 创建临时邮箱
email = client.generate_email(name="test", expiry_time=3600000)
print("邮箱地址:", email.email)

# 等待新邮件（轮询）
message = client.wait_for_message(email.id, timeout=60, interval=3)
print("收到邮件:", message.subject)

# 获取所有消息
messages = client.get_messages(email.id)

# 删除邮箱
client.delete_email(email.id)
```

### 异步用法

```python
import asyncio
from moemail import AsyncMoeMail

async def main():
    async with AsyncMoeMail(
        base_url="https://your-moemail.com",
        api_key="your-api-key",
    ) as client:
        email = await client.generate_email()
        message = await client.wait_for_message(email.id, timeout=60)
        print(message.subject)

asyncio.run(main())
```

## API 方法

| 方法 | 说明 |
|---|---|
| `get_config()` | 获取系统配置 |
| `generate_email(name?, expiry_time?)` | 创建临时邮箱 |
| `get_emails(cursor?)` | 获取邮箱列表 |
| `get_messages(email_id, cursor?)` | 获取消息列表 |
| `get_message(email_id, message_id)` | 获取单条消息 |
| `delete_email(email_id)` | 删除邮箱 |
| `wait_for_message(email_id, timeout, interval)` | 轮询等待新邮件 |
| `create_email_share(email_id, expires_in)` | 创建邮箱分享链接 |
| `get_email_shares(email_id)` | 获取邮箱分享链接 |
| `delete_email_share(email_id, share_id)` | 删除邮箱分享链接 |
| `create_message_share(...)` | 创建消息分享链接 |
| `get_message_shares(...)` | 获取消息分享链接 |
| `delete_message_share(...)` | 删除消息分享链接 |

## 参数说明

### `expiry_time` 有效期（毫秒）

| 值 | 含义 |
|---|---|
| `3600000` | 1 小时 |
| `86400000` | 24 小时 |
| `604800000` | 7 天 |
| `0` | 永久 |

## License

MIT
