Add graphviz source files for inbound/outbound mail flows.

This commit is contained in:
Zhang Huangbin 2016-04-26 18:44:09 +08:00
parent a1213c2462
commit 244510e4d5
3 changed files with 116 additions and 0 deletions

View File

@ -0,0 +1,47 @@
// Flow of inbound mails
//
// Convert to png with Graphviz:
// dot -Tpng flow.inbound.dot -o flow.inbound.png
digraph inbound {
label="Flow of Inbound Mail"
sender[label="Sender"]
sender_server[label="Sender Server"]
//postfix[label="Postfix (MTA)", style=filled]
postfix_postscreen[label="Postfix (postscreen)", style=filled]
postfix_smtpd[label="Postfix (smtpd)", style=filled]
postfix_queue[label="Postfix (queue)", style=filled]
//postfix_iredapd[label="Postfix (smtpd)"]
dovecot[label="Dovecot (POP3/IMAP/Sieve/LDA/LMTP/SASL)", style=filled]
iredapd[label="iRedAPD (Postfix Policy Server)", style=filled, shape=diamond]
db[label="OpenLDAP, MySQL/MariaDB/PostgreSQL", style=filled]
//amavisd[label="Amavisd", style=filled]
amavisd_10024[label="Amavisd (port 10024)", style=filled, shape=diamond]
sa_clamav[label="SpamAssassin, ClamAV", style=filled]
mailboxes[label="Mailboxes"]
// Flow of inbound emails
sender -> sender_server[style=dotted]
sender_server -> postfix_postscreen[label=" Enter iRedMail Server, Port 25", style=dotted]
postfix_postscreen -> sender_server[label=" REJECT", color=red]
postfix_postscreen -> postfix_smtpd
postfix_smtpd -> iredapd[label=" Greylisting \nWhitelisting \nBlacklisting \nThrottling \n..."]
postfix_smtpd -> db[label="User verification"]
iredapd -> postfix_smtpd[label=" DUNNO \nREJECT \n451 (Greylisting) \n...", color=blue]
iredapd -> db[label="User verification"]
postfix_smtpd -> sender_server[label=" REJECT \n451 (Greylisting)", color=red]
postfix_smtpd -> amavisd_10024[label=" Pipe to port 10024 for spam/Virus scanning and more"]
amavisd_10024 -> postfix_smtpd[label=" REJECT, BOUNCE, ... \n(Detected SPAM/VIRUS, ...)", color=blue]
amavisd_10024 -> sa_clamav[label=" Spam/Virus Scanning \nDKIM verification \n..."]
amavisd_10024 -> db[label=" User verification \nWhite/Blacklisting \nQuarantine Spam/Virus \n..."]
sa_clamav -> postfix_queue
postfix_queue-> dovecot[label=" Pipe"]
dovecot -> db[label=" User Authentication"]
dovecot -> mailboxes[label=" LDA, LMTP"]
dovecot -> postfix_smtpd[label=" REJECT (mailbox quota exceed)", color=blue]
//end_users -> dovecot[label="Retrieve mails via POP3/IMAP"]
//end_users -> postfix[label="Send email (port 587)"]
//Webmail -> dovecot[label="Access mailbox on web browser (IMAP)"]
//Webmail -> postfix[label="Send email (port 587)"]
iRedAdmin -> db[label="Account management \nand more"]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 203 KiB

View File

@ -0,0 +1,69 @@
// Flow of outbound mails
//
// Convert to png with Graphviz:
// dot -Tpng flow.outbound.dot -o flow.outbound.png
digraph outbound {
label="Flow of Outbound Mail"
sender[label="Sender"]
recipient[label="Recipient"]
rcpt_server[label="Recipient Server"]
postfix_smtpd[label="Postfix (smtpd)", style=filled]
postfix_queue[label="Postfix (queue)", style=filled]
postfix_submission[label="Postfix (submission, port 587, TLS)", style=filled]
//postfix_iredapd[label="Postfix (smtpd)"]
dovecot[label="Dovecot (POP3/IMAP/Sieve/LDA/LMTP/SASL)", style=filled]
iredapd[label="iRedAPD (Postfix Policy Server)", style=filled, shape=diamond]
db[label="OpenLDAP, MySQL/MariaDB/PostgreSQL", style=filled]
//amavisd[label="Amavisd", style=filled]
//amavisd_10024[label="Amavisd (for incoming mails, port 10024)", style=filled]
sa_clamav[label="SpamAssassin, ClamAV", style=filled]
amavisd_10026[label="Amavisd (for submission, port 10026)", style=filled, shape=diamond]
//mailboxes[label="Mailboxes"]
sender -> postfix_submission[label=" Enter iRedMail Server", style=dotted]
postfix_submission -> iredapd[label=" White/Blacklisting\n Throttling\n Sender Login Mismatch\n ..."]
iredapd -> postfix_submission[label=" DUNNO \nREJECT \n...", color=blue]
postfix_submission -> amavisd_10026[label=" Spam/Virus Scanning"]
amavisd_10026 -> sa_clamav[label=" Spam/Virus Scanning \nDKIM verification \n..."]
sa_clamav -> amavisd_10026
amavisd_10026 -> postfix_queue[label=" Submit to mail queue"]
postfix_queue -> postfix_smtpd
postfix_smtpd -> rcpt_server[label=" Leave iRedMail Server", style=dotted]
rcpt_server -> recipient[style=dotted]
amavisd_10026 -> postfix_submission[label=" REJECT, BOUNCE, ... \n(Detected SPAM/VIRUS, ...)", color=blue]
iredapd -> db[label=" User Verification\n Additional SQL/LDAP queries"]
amavisd_10026 -> db[label=" User verification \nWhite/Blacklisting \nQuarantine Spam/Virus \n..."]
postfix_submission -> db[label=" User Verification"]
postfix_submission -> dovecot[label="User Authentication \n(Dovecot is SASL AUTH server)"]
dovecot -> db
//postfix_submission -> sender[label=" REJECT, ...", color=red]
/*
end_users -> postfix_submission[label=" Enter iRedMail Server", style=dotted]
postfix_submission -> iredapd[label=" White/Blacklisting, Throttling"]
postfix_submission -> amavisd_10026[label=" Spam/Virus Scanning"]
postfix_submission -> dovecot[label="User Authentication \n(Dovecot is SASL AUTH server)"]
postfix_submission -> db[label=" User Verification"]
iredapd -> postfix_submission[label=" DUNNO \nREJECT \n...", color=blue]
iredapd -> db[label=" User Verification\n Additional SQL/LDAP queries"]
amavisd_10026 -> sa_clamav[label=" Spam/Virus Scanning \nDKIM verification \n..."]
amavisd_10026 -> postfix_queue[label=" Submit to mail queue"]
amavisd_10026 -> postfix_submission[label=" REJECT, BOUNCE, ... \n(Detected SPAM/VIRUS, ...)", color=blue]
amavisd_10026 -> db[label=" User verification \nWhite/Blacklisting \nQuarantine Spam/Virus \n..."]
dovecot -> db
sa_clamav -> amavisd_10026
*/
}