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