paul@955 | 1 | = Local SMTP Delivery = |
paul@955 | 2 | |
paul@955 | 3 | By employing local SMTP, the burden of routing messages to suitable storage |
paul@976 | 4 | becomes a configuration problem within the mail system itself. |
paul@955 | 5 | |
paul@971 | 6 | {{{#!graphviz |
paul@971 | 7 | //format=svg |
paul@971 | 8 | //transform=notugly |
paul@971 | 9 | digraph local_smtp { |
paul@1006 | 10 | node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Local SMTP delivery"]; |
paul@971 | 11 | edge [tooltip="Local SMTP delivery"]; |
paul@971 | 12 | rankdir=LR; |
paul@971 | 13 | |
paul@971 | 14 | mail [label="Incoming mail",shape=folder,style=filled,fillcolor=cyan]; |
paul@971 | 15 | |
paul@971 | 16 | subgraph { |
paul@971 | 17 | rank=same; |
paul@971 | 18 | personrouter [label="Person router"]; |
paul@971 | 19 | localrouter [label="Local router"]; |
paul@971 | 20 | recipients [label="Recipient database",shape=folder]; |
paul@971 | 21 | } |
paul@971 | 22 | |
paul@971 | 23 | subgraph { |
paul@971 | 24 | rank=same; |
paul@971 | 25 | personhandler [label="Person handler",style=filled,fillcolor=gold]; |
paul@971 | 26 | localtransport [label="Local transport"]; |
paul@971 | 27 | } |
paul@971 | 28 | |
paul@971 | 29 | mailbox [label="Mailboxes\n(Cyrus, Dovecot, ...)",tooltip="Mailboxes"]; |
paul@971 | 30 | |
paul@971 | 31 | mail -> personrouter -> personhandler; |
paul@971 | 32 | |
paul@971 | 33 | recipients -> personrouter; |
paul@971 | 34 | recipients -> localrouter; |
paul@971 | 35 | |
paul@971 | 36 | personhandler -> localrouter -> localtransport -> mailbox; |
paul@971 | 37 | } |
paul@971 | 38 | }}} |
paul@971 | 39 | |
paul@976 | 40 | Here, imip-agent connects to the mail transport agent (MTA) and sends a |
paul@976 | 41 | message to an explicitly-indicated local user. For example: |
paul@976 | 42 | |
paul@976 | 43 | {{{ |
paul@976 | 44 | local+vincent.vole@example.com |
paul@976 | 45 | }}} |
paul@976 | 46 | |
paul@984 | 47 | == Local System Users == |
paul@984 | 48 | |
paul@984 | 49 | With such a local user indicated, the message is then routed to a mail |
paul@984 | 50 | delivery mechanism, perhaps by converting the local address to a local |
paul@984 | 51 | system user identity (a user with an account on the system running the |
paul@984 | 52 | software). For example: |
paul@976 | 53 | |
paul@976 | 54 | {{{ |
paul@976 | 55 | vole |
paul@976 | 56 | }}} |
paul@976 | 57 | |
paul@984 | 58 | The local delivery mechanism would then deposit the message in the user's |
paul@984 | 59 | mailbox. MTAs typically provide such routing for local system users by |
paul@984 | 60 | default. |
paul@984 | 61 | |
paul@984 | 62 | == Mailbox/Virtual Users == |
paul@976 | 63 | |
paul@984 | 64 | Alternatively, with a local user having been indicated, a message would be |
paul@984 | 65 | routed for delivery by a mail storage solution which would accept the message |
paul@984 | 66 | for the indicated user and deliver it to that user's mailbox. For example: |
paul@984 | 67 | |
paul@984 | 68 | {{{ |
paul@984 | 69 | vincent.vole |
paul@984 | 70 | }}} |
paul@984 | 71 | |
paul@984 | 72 | Where such routing is performed to mailbox providers employing LMTP, |
paul@984 | 73 | some additional configuration effort may be required. See the |
paul@971 | 74 | [[../../MailboxIntegration|mailbox integration guide]] for more details. |
paul@971 | 75 | |
paul@984 | 76 | Some of the routing for explicitly-indicated local users is dependent on the |
paul@984 | 77 | identification of users and is described in the |
paul@984 | 78 | [[../../MailIntegration/LDAP|LDAP]] and [[../../MailIntegration/Simple|simple]] |
paul@984 | 79 | integration guides. |