mail-accounts/queries.md

65 lines
1.1 KiB
Markdown

# Stalwart queries
## name
100 GB quota
```sql
SELECT name, 'individual' as type, password as secret, '' as description, 107374182400 as quota
FROM accounts
WHERE secret != NULL AND name = ?
```
## members
```sql
SELECT NULL as member_of WHERE 1=0
```
## recipients
```sql
SELECT name
FROM emails JOIN accounts on emails.id = accounts.id
WHERE mail = ?
```
## emails
```sql
SELECT mail as address
FROM (
SELECT name || '@familleboyer.net' as mail, 0 as type FROM accounts WHERE name = ?
UNION
SELECT mail, (alias)::int + 1 as type
FROM emails JOIN accounts ON accounts.id = emails.id
WHERE name = ?
) as mails
ORDER BY type
```
## verify
```sql
SELECT mail as address
FROM (
SELECT name || '@familleboyer.net' as mail FROM accounts
UNION
SELECT mail
FROM emails JOIN accounts ON accounts.id = emails.id
WHERE NOT alias
) as mails
WHERE mail LIKE '%' || ? || '%' ORDER BY mail LIMIT 5
```
## expand
```sql
SELECT NULL as address WHERE 1=0
```
## domains
```sql
SELECT 1 WHERE ? = 'familleboyer.net'
```