<!DOCTYPE html> <html lang='en'> <head> <title> mx - LEAP Platform Documentation </title> <meta content='width=device-width, initial-scale=1.0' name='viewport'> <meta charset='UTF-8'> <base href="" /> <style> body { background: #444; display: flex; flex-direction: row; padding: 10px; margin: 0px; } #sidebar { flex: 0 0 250px; background: white; margin-right: 10px; padding: 20px; } #sidebar ul { list-style-type: none; padding-left: 0px; margin: 0; } #sidebar li { padding: 4px } #sidebar li a { text-decoration: none } #sidebar li.active { background: #444 } #sidebar li.active a { color: white } #sidebar li.level1 { padding-left: 20px } #sidebar li.level2 { padding-left: 40px } #main { flex: 1 1 auto; background: white; padding: 20px; } #title-box { padding-bottom: 20px; border-bottom: 5px solid #eee; } #title-box h1 { margin-top: 0px; } pre { padding: 10px; background: #eef; } code { background: #eef; } table {border-collapse: collapse} table td { border: 1px solid #ccc; padding: 4px; vertical-align: top; } </style> </head> <body> <div id='sidebar'> <ul> <li class=''> <a href='../../../index.html'>Home</a> </li> <li class=' level0'> <a class='' href='../../guide.html'>Guide</a> </li> <li class=' level0'> <a class='' href='../../tutorials.html'>Tutorials</a> </li> <li class='semi-active level0'> <a class='' href='../../services.html'>Services</a> </li> <li class=' level1'> <a class='' href='../couchdb.html'>couchdb</a> </li> <li class=' level1'> <a class='' href='../openvpn.html'>openvpn</a> </li> <li class=' level1'> <a class='' href='../monitor.html'>monitor</a> </li> <li class='active level1'> <a class='' href='../mx.html'>mx</a> </li> <li class=' level1'> <a class='' href='../soledad.html'>soledad</a> </li> <li class=' level1'> <a class='' href='../tor.html'>tor</a> </li> <li class=' level1'> <a class='' href='../webapp.html'>webapp</a> </li> <li class=' level0'> <a class='' href='../../upgrading.html'>Upgrading</a> </li> <li class=' level0'> <a class='' href='../../troubleshooting.html'>Troubleshooting</a> </li> <li class=' level0'> <a class='' href='../../details.html'>Details</a> </li> </ul> </div> <div id='main'> <div id='title-box'> <h1>mx</h1> <div id='summary'>Incoming and outgoing MX servers.</div> </div> <div id='content-box'> <div id="TOC"><ol> <li> <a href="index.html#topology">Topology</a> </li> <li> <a href="index.html#configuration">Configuration</a> <ol> <li> <a href="index.html#aliases">Aliases</a> </li> </ol> </li> </ol></div> <h2><a name="topology"></a>Topology</h2> <p><code>mx</code> nodes communicate with the public internet, clients, and <code>couchdb</code> nodes.</p> <h2><a name="configuration"></a>Configuration</h2> <h3><a name="aliases"></a>Aliases</h3> <p>Using the <code>mx.aliases</code> property, you can specify your own hard-coded email aliases that precedence over the aliases in the user database. The <code>mx.aliases</code> property consists of a hash, where source address points to one or more destination addresses.</p> <p>For example:</p> <p><code>services/mx.json</code>:</p> <pre><code>"mx": { "aliases": { "rook": "crow", "robin": "robin@bird.org", "flock": ["junco@bird.org", "robin", "crow"], "chickadee@avian.org": "chickadee@bird.org", "flicker": ["flicker@bird.org", "flicker@deliver.local"] } } </code></pre> <p>This example demonstrates several of the features with <code>mx.aliases</code>:</p> <ol> <li>alias lists: by specifying an array of destination addresses, as in the case of “flock”, the single email will get copied to each address.</li> <li>chained resolution: alias resolution will recursively continue until there are no more matching aliases. For example, “flock” is resolved to “robin”, which then gets resolved to “<a href="mailto:robin@bird.org">robin@bird.org</a>”.</li> <li>virtual domains: by specifying the full domain, as in the case of “<a href="mailto:chickadee@avian.org">chickadee@avian.org</a>”, the alias will work for any domain you want. Of course, the MX record for that domain must point to appropriate MX servers, but otherwise you don’t need to do any additional configuration.</li> <li>local delivery: for testing purposes, it is often useful to copy all incoming mail for a particular address and send those copies to another address. You can do this by adding “@deliver.local” as one of the destination addresses. When “@local.delivery” is found, alias resolution stops and the mail is delivered to that username.</li> </ol> </div> </div> </body> </html>