# tomsjavajive.com — Email Configuration

**Provider:** CyberMail (CyberPersons)
**Status:** ✅ Live — domain verified

## API (Primary — used for all transactional email)

| Setting | Value |
|---------|-------|
| Endpoint | `POST https://platform.cyberpersons.com/email/v1/send` |
| API Key | `sk_live_d52bf062797105aeaafac9954c21ff988e9b41b77315807d` |
| Auth Header | `Authorization: Bearer sk_live_d52bf062797105aeaafac9954c21ff988e9b41b77315807d` |
| From Address | noreply@tomsjavajive.com |
| From Name | Toms Java Jive |

## SMTP (Backup — blocked by DigitalOcean port 587)

| Setting | Value |
|---------|-------|
| Host | mail.cyberpersons.com |
| Port | 587 |
| Security | STARTTLS |
| Username | smtp_49a1fa9c0f15d2d7 |
| Password | T3mOFSMK1SG1l4D1d7N8NefRd8xypwMy |

## Server Files

| File | Purpose |
|------|---------|
| `/home/tomsjavajive.com/public_html/config/config.php` | `CYBERMAIL_API_KEY`, `SMTP_*` constants |
| `/home/tomsjavajive.com/public_html/includes/email.php` | Email class — all transactional sends |

## Emails Sent
- Order confirmation, shipping notification, password reset, welcome, abandoned cart

## CyberMail API Quick Reference
- **Status check:** `GET https://platform.cyberpersons.com/email/v1/messages/{message_id}`
- **Account stats:** `GET https://platform.cyberpersons.com/email/v1/account/stats`
- **Management:** https://platform.cyberpersons.com

## Error Codes
| HTTP | Code | Meaning |
|------|------|---------|
| 400 | invalid_request | Missing fields or bad email format |
| 403 | domain_not_verified | Domain not verified |
| 403 | account_inactive | Account suspended |
| 429 | rate_limit_exceeded | Rate limit hit (includes retry_after) |
| 500 | send_failed | Sending failed after failover |
| 503 | service_unavailable | No healthy mail nodes |
