Keep sanitized Compose sources in-repo with a confirmation-gated Ansible playbook, add repo-wide validation, tighten runbook ownership/STOP/review metadata, and archive stale research docs. Co-authored-by: Cursor <cursoragent@cursor.com>
2.5 KiB
2.5 KiB
Runbook: use mailcow SMTP / IMAP (client)
Purpose
Reference for configuring mail clients against the mailcow SMTP/IMAP endpoints.
Scope
- Applicable: mx2.windy.me client submission (587/465) and IMAP/POP (993/995).
- Not applicable: server-side mailcow configuration or administration.
Ownership
- Owner: personal ops (Windy)
- Last reviewed: 2026-08-17
- Related systems: mx2.windy.me (SMTP/IMAP client endpoints)
Target: mx2.windy.me
Prerequisite: a mailbox on windy.me (password from mailcow UI, not the admin account unless it is that mailbox).
Clients should use submission to send. Do not use port 25 as a desktop/app outbound port.
Send (SMTP)
| Item | Value |
|---|---|
| Server | mx2.windy.me |
| Port | 587 (STARTTLS) — preferred |
| Alt port | 465 (SSL/TLS) |
| Username | Full address, e.g. zhiqiang@windy.me |
| Password | Mailbox password |
| Auth | Required (LOGIN / PLAIN) |
Match encryption to the port: 587 → STARTTLS; 465 → SSL/TLS (not STARTTLS).
From address should be that mailbox or an allowed alias on the same domain.
Receive (IMAP / POP)
| Protocol | Server | Port |
|---|---|---|
| IMAPS | mx2.windy.me |
993 |
| POP3S | mx2.windy.me |
995 |
Username = full email address; same mailbox password.
Webmail
- UI / SOGo: https://mx2.windy.me
- Log in with the same mailbox credentials.
CLI smoke test (optional)
swaks --to someone@example.com \
--from YOU@windy.me \
--server mx2.windy.me --port 587 -tls \
--auth LOGIN --auth-user YOU@windy.me --auth-password 'MAILBOX_PASSWORD'
Do not commit or paste real passwords into this repo.
Auth failures — quick checks
- Username is the full email, not a local part alone
- Password is the mailbox password (not unrelated host/root secrets)
- Port/TLS mode mismatch (587 vs 465)
- Account active in mailcow; not rate-limited / fail2banned after bad attempts
- Apps that store SMTP in their own config (e.g. Vaultwarden
config.json) may keep a stale password even when.envis correct — verify AUTH against the effective config (vaultwarden-health §5)
Safety
- Do not commit or paste real passwords into this repo or chat.
- Use submission (587/465) for client sending; never use port 25 as a desktop/app outbound port.
- If live state conflicts with the endpoint values above,
STOPand report; do not change server-side settings during this reference check.