Clone from original
An SMTP server and library implemented in Rust.
@startuml
database "Accounts"
node "MailboxSystem" {
[Mailbox]
database "Mails"
}
cloud internet {
[Another Server]
}
cloud user {
:Bob:
[MUA]
}
:Bob: -> [MUA]: read mail
:admin: -up-> [Management]
[Management] -right-> Mails: manage accounts
[Management] -left-> Accounts: manage accounts
[MUA] -(0- [Mailbox]: inbox (IMAP)
[MTA] -left(0- [Guard]: 1. Check RCPT (LMTP)
[MTA] -right(0- [Mailbox]: 2. deliver mail (LMTP)
[Guard] -down-> Accounts: get rules
[Another Server] -(0- MTA: relay (ESMTP)
[Mailbox] -down-> Mails
@enduml
@startuml
database "Queue"
database "Accounts"
[MSA]
[QM]
cloud internet {
[Another Server]
}
cloud user {
:Bob:
[MUA]
}
:Bob: -> [MUA]: send an e-mail
[MUA] -(0- [MSA]: submission (ESMTP)
[MSA] -down-> Accounts: 1. authenticate
[MSA] -right(0- [QM]: 2. queue (LMTP)
[QM] -down-> Queue
[QM] -up(0- [Another Server]: relay (ESMTP)
@enduml