mail-accounts/queries.md
2023-10-09 16:36:35 +02:00

78 lines
1.1 KiB
Markdown

# Stalwart queries
## name
100 GB quota
```sql
SELECT
mail as name,
'individual' as type,
password as secret,
'' as description,
107374182400 as quota
FROM emails
JOIN accounts ON emails.id = accounts.id
WHERE
type = 'primary'
AND mail = ?
AND password IS NOT NULL
```
## members
```sql
SELECT NULL as member_of WHERE 1=0
```
## recipients
```sql
SELECT dest as name FROM alias WHERE alias = ?
UNION
SELECT mail as name
FROM emails
WHERE id = (SELECT id FROM emails WHERE type = 'list' AND mail = ?)
AND type = 'primary'
UNION
SELECT mail as name FROM emails WHERE mail = ?
```
## emails
```sql
SELECT mais as address
FROM emails
WHERE
(id = (SELECT id FROM emails WHERE mail = ?) AND type = 'alias')
OR mail = ?
ORDER BY type, mail
```
## verify
```sql
SELECT mail as address
FROM emails
WHERE
mail LIKE '%' || ? || '%'
AND type = 'primary'
ORDER BY address
LIMIT 5
```
## expand
```sql
SELECT recipient as address
FROM list_recipients
WHERE list = ?
ORDER BY address
LIMIT 50
```
## domains
```sql
SELECT 1 FROM emails WHERE mail LIKE '%@' || ? LIMIT 1
```