Email security service for AI agents. Scans incoming emails for threats and manages quarantine.
- Email Ingestion: Receive emails via SendGrid Inbound Parse webhook
- Threat Detection: Scan emails for phishing, spam, malware, and suspicious content
- Quarantine Management: Automatically quarantine threats; approve or reject manually
- API Access: RESTful API for email listing and management
cd armourmail
pip install -r requirements.txtDevelopment:
uvicorn src.armourmail.api:app --reload --port 8000Production:
gunicorn src.armourmail.api:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000Once running, visit:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
ArmourMail can ingest emails via SendGrid Inbound Parse:
POST /webhook/ingest
Setup guide: docs/sendgrid-inbound-parse.md
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check |
| POST | /webhook/ingest |
SendGrid Inbound Parse webhook |
| GET | /emails |
List all emails (paginated) |
| GET | /emails/{id} |
Get single email with scan results |
| GET | /quarantine |
List quarantined emails |
| POST | /quarantine/{id}/approve |
Release email from quarantine |
| POST | /quarantine/{id}/reject |
Permanently reject email |
- Configure SendGrid Inbound Parse to point to your
/webhook/ingestendpoint - Set the MX record for your domain to point to SendGrid
- Emails sent to your domain will be forwarded to ArmourMail
Environment variables:
ARMOURMAIL_DEBUG: Enable debug mode (default: false)ARMOURMAIL_LOG_LEVEL: Logging level (default: INFO)
armourmail/
├── src/
│ └── armourmail/
│ ├── __init__.py
│ ├── api.py # FastAPI application
│ ├── models.py # Pydantic models
│ └── detector.py # Threat detection module
├── requirements.txt
└── README.md
MIT