mail-accounts/queries.md

79 lines
1.2 KiB
Markdown
Raw Normal View History

# Stalwart queries
## name
100 GB quota
```sql
2023-10-09 16:36:35 +02:00
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'
2023-12-05 23:16:43 +01:00
AND mail = $1
2023-10-09 16:36:35 +02:00
AND password IS NOT NULL
```
## members
```sql
SELECT NULL as member_of WHERE 1=0
```
## recipients
```sql
2023-12-05 23:16:43 +01:00
SELECT dest as name FROM alias WHERE alias = $1
2023-10-09 16:36:35 +02:00
UNION
SELECT mail as name
FROM emails
2023-12-05 23:16:43 +01:00
WHERE id = (SELECT id FROM emails WHERE type = 'list' AND mail = $1)
2023-10-09 16:36:35 +02:00
AND type = 'primary'
UNION
2023-12-05 23:16:43 +01:00
SELECT mail as name FROM emails WHERE mail = $1
```
## emails
```sql
2023-10-09 16:36:35 +02:00
SELECT mais as address
FROM emails
WHERE
2023-12-05 23:16:43 +01:00
(id = (SELECT id FROM emails WHERE mail = $1) AND type = 'alias')
OR mail = $1
2023-10-09 16:36:35 +02:00
ORDER BY type, mail
```
## verify
```sql
2023-10-09 16:36:35 +02:00
SELECT mail as address
FROM emails
WHERE
2023-12-05 23:16:43 +01:00
mail LIKE '%' || $1 || '%'
2023-10-09 16:36:35 +02:00
AND type = 'primary'
ORDER BY address
LIMIT 5
```
## expand
```sql
2023-10-09 16:36:35 +02:00
SELECT recipient as address
FROM list_recipients
2023-12-05 23:16:43 +01:00
WHERE list = $1
2023-10-09 16:36:35 +02:00
ORDER BY address
LIMIT 50
```
## domains
```sql
2023-12-05 23:16:43 +01:00
SELECT 1 FROM emails WHERE mail LIKE '%@' || $1 LIMIT 1
```