imip-agent

Annotated docs/wiki/MailIntegration--LocalSMTP

1053:068aa85f0c45
2016-02-08 Paul Boddie Made the retraction operation a complete transaction. Tidied up the locking and unlocking function application.
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.