imip-agent

docs/wiki/MailIntegration

1073:562e94fc8827
2016-03-06 Paul Boddie Adjusted the __nonzero__ and __len__ methods of the database collection. freebusy-collections
     1 = Mail Integration =     2      3 To act as a part of an e-mail system, imip-agent provides a number of programs     4 that may be invoked by mail transfer agents (MTAs) upon sending or receiving     5 messages. In order to uphold portability and to minimise configuration issues,     6 these programs need only be registered as simple mail handlers or transports,     7 thus potentially supporting a wide range of MTAs.     8      9 Once imip-agent has processed a message, it may then deliver it to its    10 intended recipient. The mail storage systems that may receive messages from    11 imip-agent need only support the delivery mechanisms used by imip-agent.    12 Otherwise, few constraints should be imposed by each kind of system on the    13 other.    14     15 {{{#!graphviz    16 //format=svg    17 //transform=notugly    18 digraph mail_integration {    19   node [shape=box,fontsize="13.0",fontname="Helvetica",tooltip="Mail integration"];    20   edge [tooltip="Mail integration"];    21   rankdir=LR;    22     23   mail [label="Incoming mail",shape=folder,style=filled,fillcolor=cyan];    24     25   subgraph {    26     rank=same;    27     personrouter [label="Person router"];    28     resourcerouter [label="Resource router"];    29     recipients [label="Recipient database",shape=folder];    30   }    31     32   subgraph {    33     rank=same;    34     personhandler [label="Person handler",style=filled,fillcolor=gold];    35     resourcehandler [label="Resource handler",style=filled,fillcolor=gold];    36     scheduling [label="Scheduling",shape=ellipse,style=filled,fillcolor=gold];    37     freebusy [label="Free/busy",shape=folder,style=filled,fillcolor=gold];    38   }    39     40   mailbox [label="Mailboxes\n(Cyrus, Dovecot, ...)",tooltip="Mailboxes"];    41     42   mail -> personrouter -> personhandler -> mailbox;    43   mail -> resourcerouter -> resourcehandler    44     45   recipients -> personrouter;    46   recipients -> resourcerouter;    47     48   personhandler -> scheduling;    49   resourcehandler -> scheduling;    50   scheduling -> freebusy;    51 }    52 }}}    53     54 == MTAs ==    55     56 Currently, imip-agent supports [[http://exim.org/|Exim]] and    57 [[http://www.postfix.org/|Postfix]], although this support should be readily    58 broadened, and offers configuration resources for these supported systems so    59 as to allow imip-agent to be deployed within existing mail-sending and    60 delivery infrastructures.    61     62 {{{#!table    63 || '''Identifying Recipients''' || '''Integrating imip-agent''' || '''Notes'''    64 ==    65 '''Exim'''    66 || Routers identify recipients of mail that shall be handled by imip-agent    67 || Transports invoke imip-agent programs    68 || Exim is widely deployed as the default MTA for Debian. Consequently, it is    69 .. desirable to support this software in imip-agent.    70 ==    71 '''Postfix'''    72 || Virtual aliases identify recipients of mail that shall be handled by    73 .. imip-agent    74 || Transports invoke imip-agent programs    75 || Postfix is also widely deployed and is sometimes preferred by administrators.    76 }}}    77     78 Some hints on mail system configuration can be found in the [[/MTA|MTA guide]].    79     80 == Identification of Recipients ==    81     82 In principle, any mechanism supported by the MTA can be used to identify    83 recipients; imip-agent does not employ identification mechanisms of its own.    84 Thus, the task of identifying recipients is one of MTA configuration, with the    85 following mechanisms tested:    86     87 {{{#!table    88 '''Identification Mechanisms''' || '''Tested with...'''    89 ==    90 [[/LDAP|LDAP]] || Exim, Postfix    91 ==    92 [[/Simple|Simple (list-based identification)]] || Exim, Postfix    93 }}}    94     95 It is worth repeating that imip-agent does not try and validate users. Once    96 the MTA has decided that a recipient can actually receive a message, and once    97 that message is passed to one of the [[../AgentPrograms|agent programs]], the    98 software will process that message and record information for the recipient in    99 the [[../FilesystemUsage|filesystem structures]] for the user.   100    101 See the [[../Usage|usage guide]] for information on preparing data stores for   102 users in advance of any mail being received for them.   103    104 === The Calendar System Address ===   105    106 Since imip-agent may send messages on behalf of calendar users, the address   107 it uses to do so must be recognised by the MTA. This may be done by adding   108 an entry to the `/etc/aliases` file such as the one defined in the   109 `conf/aliases.example` file:   110    111 {{{   112 calendar: root   113 }}}   114    115 More suitable routing can be defined as desired. See the `MESSAGE_SENDER`   116 setting defined in the `config.py` file described in the   117 [[../Configuration|configuration guide]].   118    119 == Invoking the Agent Programs ==   120    121 Regardless of identification or delivery mechanisms, the imip-agent software   122 must be integrated into the mail processing pipeline so that messages can be   123 interpreted and processed. This is done by configuring the MTA's   124 [[/Transports|transport mechanisms]].   125    126 == Delivery ==   127    128 To deliver messages to their ultimate recipients after having processed them,   129 imip-agent currently employs either local SMTP connections or   130 [[https://tools.ietf.org/html/rfc2033|LMTP]]. There is nothing in principle   131 preventing imip-agent from also supporting other common delivery mechanisms,   132 however.   133    134 {{{#!table   135 '''Delivery Mechanisms''' || '''Tested with...'''   136 ==   137 [[/LocalSMTP|Local SMTP]] || Exim, Postfix   138 ==   139 [[/LMTP|LMTP]]            || Exim, Postfix   140 }}}   141    142 See the [[../MailboxIntegration|mailbox integration guide]] for a brief   143 overview of configuring mail storage solutions.