| action | actor | pass to next actor by |
| Sender wants to send a message. | ||
| write new email | MUA (mutt itself, and mutt-var $editor) | \/ mutt-var $sendmail \/ |
| queue & send | local MTA (optional) | \/ SMTP \/ |
| validate & accept | ISP's MSA | \/ SMTP \/ |
| now email is stored at own ISP's MSA = ISP's MTA | ||
| relay to next MTA | internet MTA | \/ SMTP \/ |
| this repeats for each MTA between source & destination | ||
| now email arrives at remote ISP | ||
| receive | remote MTA | mta-internal |
| deliver | MDA | \/ rules, filters, forwards \/ |
| store | ISP filesystem | delivery complete |
| Recipient now wants to read the stored mail. | ||
| action | actor | get from previous actor by |
| Note: The activity direction changes. So far the sender "pushed" the msg, now the receiver has to "pull" the msg. | ||
| access & store locally | MRA (optional) | /\ IMAP, POP /\ |
| read | MUA | /\ local filesystem /\ |
| Success: the message has gone from sender to recipient. Recipient may want to become the sender of a different message; start over. | ||
Several steps above are optional: