Skip to content

Commit 08d982f

Browse files
slusarzsirainen
authored andcommitted
submission: Add submission flow diagram
1 parent abadc49 commit 08d982f

File tree

6 files changed

+102
-12
lines changed

6 files changed

+102
-12
lines changed

.github/actions/spelling/expect.txt

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ ADDRESULT
88
ADH
99
Adleman
1010
Aildir
11-
allbackups
1211
alloconly
1312
altmove
1413
altpath
@@ -156,7 +155,6 @@ dnpassword
156155
DOI
157156
domainless
158157
domainname
159-
dontlognull
160158
Dorner
161159
dotlock
162160
dotlocking
@@ -193,6 +191,7 @@ Eing
193191
ekh
194192
emaillookup
195193
endscript
194+
enduml
196195
ENHANCEDSTATUSCODES
197196
enotify
198197
entra
@@ -209,8 +208,8 @@ euid
209208
examplescripts
210209
execv
211210
exim
212-
extlists
213211
exportkeytab
212+
extlists
214213
extprograms
215214
extracttext
216215
exttextcat
@@ -234,9 +233,7 @@ foofilename
234233
foop
235234
foos
236235
foreverypart
237-
forwardfor
238236
fpdb
239-
Frontends
240237
FROP
241238
fscache
242239
fsgid
@@ -283,8 +280,6 @@ hostip
283280
howto
284281
htdigest
285282
htpasswd
286-
httpchk
287-
httplog
288283
iana
289284
idfield
290285
IES
@@ -363,7 +358,6 @@ ldapmodify
363358
ldaps
364359
LDFLAGS
365360
ldif
366-
leastconn
367361
lenumber
368362
letsencrypt
369363
LFs
@@ -400,7 +394,6 @@ listfile
400394
listname
401395
listscripts
402396
LISTSERV
403-
lkas
404397
lmtp
405398
lmtponly
406399
lmtptest
@@ -453,7 +446,6 @@ masteradmin
453446
masterpass
454447
masteruser
455448
matadata
456-
maxconn
457449
maxproc
458450
maxretry
459451
mboxcl
@@ -671,7 +663,6 @@ rfcs
671663
Rivest
672664
Roskakori
673665
roundcube
674-
roundrobin
675666
rport
676667
rquota
677668
rsaprivkey
@@ -692,7 +683,6 @@ savedbefore
692683
SAVEDON
693684
savedsince
694685
SAVEONLY
695-
scality
696686
scontext
697687
scriptname
698688
sdbox
@@ -755,6 +745,7 @@ sqluser
755745
SSHA
756746
ssldir
757747
stackbuf
748+
startuml
758749
STATEDIR
759750
staticbuf
760751
staticdb
@@ -868,6 +859,7 @@ urandom
868859
Urg
869860
urlauth
870861
URLFETCH
862+
usecase
871863
usecs
872864
userdata
873865
userdb
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
@startuml
2+
top to bottom direction
3+
4+
actor MUA [
5+
MUA (Mail Client)
6+
]
7+
8+
package "DOVECOT" {
9+
usecase "submission-login\n(Handles TLS & Auth)" as SubLogin
10+
component "Dovecot Auth" as Auth
11+
usecase "submission\n(Validates SMTP; proxies mail)" as Submission
12+
database "Mail Storage" as Storage
13+
}
14+
15+
node "Backend MTA\n(e.g., Postfix/Exim)" as MTA
16+
17+
cloud "Remote Delivery" as Net
18+
19+
' Define the connections based on the flow
20+
MUA -down-> SubLogin : " Connect (SMTP: Port 465/587)"
21+
SubLogin -down-> Auth
22+
Auth -down-> Submission
23+
Submission ..> Storage : "(Optional) Handles BURL"
24+
Submission -down-> MTA : "Relays message (SMTP)"
25+
MTA -down-> Net
26+
27+
@enduml

docs/core/config/submission.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ It is currently implemented as a proxy that acts as a front-end for any
1616
[[link,mta]], adding the necessary functionality required for a submission
1717
service: it adds the required AUTH ([[rfc,4954]]) support, avoiding
1818
the need to configure the MTA for [[link,sasl]].
19+
:::
1920

2021
::: danger
2122
Dovecot's submission server is NOT a full-featured SMTP server. It REQUIRES
@@ -81,6 +82,10 @@ service:
8182
* **VRFY** ([[rfc,5321]])
8283
* **XCLIENT**: See https://www.postfix.org/XCLIENT_README.html
8384

85+
## Flow Diagram
86+
87+
<!-- @include: @docs/core/config/include/submission_flow.inc -->
88+
8489
## Configuration
8590

8691
### Submission Service

lib/markdown.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import containerPlugin from 'markdown-it-container'
22
import fg from 'fast-glob'
33
import deflistPlugin from 'markdown-it-deflist'
4+
import { plantuml } from "@mdit/plugin-plantuml";
45
import path from 'path'
56
import { createMarkdownRenderer } from 'vitepress'
67
import { dovecotSetting, frontmatterIter, loadData } from './utility.js'
@@ -17,6 +18,7 @@ export function dovecotMdExtend(md) {
1718
})
1819
md.use(deflistPlugin)
1920
md.use(dovecot_markdown)
21+
md.use(plantuml)
2022

2123
return md
2224
}

package-lock.json

Lines changed: 63 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "dovecot-ce-documentation",
33
"devDependencies": {
4+
"@mdit/plugin-plantuml": "^0.22.3",
45
"@sindresorhus/slugify": "^2.2.1",
56
"camelcase": "^8.0.0",
67
"commander": "^13.1.0",

0 commit comments

Comments
 (0)