blob: b4317f1974323d4fdbf208c11eabef6440c8c7d4 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Distributed James Server &mdash; Command Line Interface :: Apache James</title>
<meta name="generator" content="Antora 3.1.2">
<link rel="stylesheet" href="../../../../../_/css/site.css">
</head>
<body class="article">
<header class="header">
<nav class="navbar">
<div class="navbar-brand">
<a class="navbar-item" href="https://james.apache.org"><img src="/_/img/james.svg" alt="james logo"> Apache James</a>
<button class="navbar-burger" data-target="topbar-nav">
<span></span>
<span></span>
<span></span>
</button>
</div>
<div id="topbar-nav" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" href="#">Home</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Products</a>
<div class="navbar-dropdown">
<div class="navbar-item"><strong>James server</strong></div>
<a class="navbar-item" href="https://github.com/apache/james-project">Repository</a>
<a class="navbar-item" href="https://issues.apache.org/jira/projects/JAMES/issues">Issue Tracker</a>
<hr class="navbar-divider">
<a class="navbar-item" href="https://james.apache.org/mime4j/index.html">Mime4J</a>
<a class="navbar-item" href="https://james.apache.org/jsieve/index.html">jSieve</a>
<a class="navbar-item" href="https://james.apache.org/jspf/index.html">jSPF</a>
<a class="navbar-item" href="https://james.apache.org/jdkim/index.html">jDKIM</a>
<a class="navbar-item" href="https://james.apache.org/hupa/index.html">HUPA</a>
</div>
</div>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href="#">Community</a>
<div class="navbar-dropdown">
<!-- Not ideal but dropping the version in the href requires tweaking james-projet docs module first -->
<a class="navbar-item" href="/james-project/3.6.0/community/mailing-lists.html">Mailing lists</a>
<a class="navbar-item" href="https://gitter.im/apache/james-project"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 32 32" class="logo-gitter-sign" data-v-44ebcb1a=""><rect x="15" y="5" width="2" height="10"></rect> <rect x="10" y="5" width="2" height="20"></rect> <rect x="5" y="5" width="2" height="20"></rect> <rect width="2" height="15"></rect></svg> Gitter</a>
<a class="navbar-item" href="https://twitter.com/ApacheJames">
<span class="icon">
<svg aria-hidden="true" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<path fill="#57aaee" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z"></path>
</svg>
</span> Twitter
</a>
<a class="navbar-item" href="#"> <svg class="octicon octicon-mark-github v-align-middle" viewBox="0 0 16 16" version="1.1" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg> Github</a>
</div>
</div>
<!-- <div class="navbar-item">
<span class="control">
<a class="button is-primary" href="#">Download</a>
</span>
</div> -->
</div>
</div>
</nav>
</header>
<div class="body">
<div class="nav-container" data-component="james-project" data-version="3.6.0">
<aside class="nav">
<div class="panels">
<div class="nav-panel-menu is-active" data-panel="menu">
<nav class="nav-menu">
<button class="nav-menu-toggle" aria-label="Toggle expand/collapse all" style="display: none"></button>
<h3 class="title"><a href="../../../index.html">Apache James Server</a></h3>
<ul class="nav-list">
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../concepts/index.html">Concepts</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../concepts/user/index.html">User Model</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../concepts/mail/index.html">Emails</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="#mail/messages/index.adoc">mail/messages/index.adoc</a>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="#mail/messages/imf.adoc">mail/messages/imf.adoc</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="#mail/messages/mime.adoc">mail/messages/mime.adoc</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../concepts/protocols/index.html">Protocols</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/smtp.html">SMTP</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/pop.html">POP</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/imap.html">IMAP</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/jmap.html">JMAP</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/esmtp.html">ESMTP</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/protocols/lmtp.html">LMTP</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../concepts/storage/index.html">Storage</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/storage/mailbox.html">Mailboxes</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../../concepts/storage/users.html">Users</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../concepts/processing/index.html">Processing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../concepts/configuration.html">Configuration</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../concepts/glossary.html">Glossary</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../index.html">Servers</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../demo.html">Demo</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../5-minute-demo.html">Short Demo</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../15-minute-demo.html">Long Demo</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../basic/index.html">Basic</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/context.html">Context</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/objectives.html">Objectives</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/concepts.html">Concepts</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/architecture.html">Architecture</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/conf/index.html">Configuration</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../../basic/help.html">Help</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../extendable.html">Extendable</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../distributed.html">Distributed</a>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../objectives.html">Objectives and motivation</a>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../architecture/index.html">Architecture</a>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../architecture/consistency-model.html">Consistency Model</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../architecture/specialized-instances.html">Specialized instances</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../run.html">Run</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="../run-docker.html">Run with docker</a>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../configure/index.html">Configuration</a>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<button class="nav-item-toggle"></button>
<span class="nav-text">Protocols</span>
<ul class="nav-list">
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/imap.html">imapserver.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/jmap.html">jmap.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/jmx.html">jmx.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/smtp.html">smtpserver.xml &amp; lmtpserver.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/smtp-hooks.html">Packaged SMTP hooks</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/pop3.html">pop3server.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/webadmin.html">webadmin.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/ssl.html">SSL &amp; TLS</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="4">
<button class="nav-item-toggle"></button>
<span class="nav-text">Storage dependencies</span>
<ul class="nav-list">
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/blobstore.html">blobstore.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/cassandra.html">cassandra.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/elasticsearch.html">elasticsearch.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/rabbitmq.html">rabbitmq.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/tika.html">tika.properties</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="4">
<button class="nav-item-toggle"></button>
<span class="nav-text">Core components</span>
<ul class="nav-list">
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/batchsizes.html">batchsizes.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/dns.html">dnsservice.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/domainlist.html">domainlist.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/healthcheck.html">healthcheck.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/mailetcontainer.html">mailetcontainer.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/mailets.html">Packaged Mailets</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/matchers.html">Packaged Matchers</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/mailrepositorystore.html">mailrepositorystore.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/recipientrewritetable.html">recipientrewritetable.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/usersrepository.html">usersrepository.xml</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="4">
<button class="nav-item-toggle"></button>
<span class="nav-text">Extensions</span>
<ul class="nav-list">
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/vault.html">deletedMessageVault.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/extensions.html">extensions.properties</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/listeners.html">listeners.xml</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/spam.html">Anti-Spam setup</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/remote-delivery-error-handling.html">About RemoteDelivery error handling</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/collecting-contacts.html">Contact collection</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/collecting-events.html">Event collection</a>
</li>
<li class="nav-item" data-depth="5">
<a class="nav-link" href="../configure/dsn.html">ESMTP DSN support</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="index.html">Operate</a>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="guide.html">Operator guide</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="logging.html">Logging</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="webadmin.html">WebAdmin REST administration API</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="metrics.html">Metrics</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="migrating.html">Migrating existing data</a>
</li>
<li class="nav-item is-current-page" data-depth="4">
<a class="nav-link" href="cli.html">Command Line Interface</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="cassandra-migration.html">Cassandra migration</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="3">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../extending/index.html">Extending server behavior</a>
<ul class="nav-list">
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../extending/mail-processing.html">Custom mail processing components</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../extending/mailbox-listeners.html">Custom Mailbox Listeners</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../extending/smtp-hooks.html">Custom SMTP hooks</a>
</li>
<li class="nav-item" data-depth="4">
<a class="nav-link" href="../extending/webadmin-routes.html">Custom WebAdmin routes</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../test.html">Test</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../../customization/index.html">Customization</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<a class="nav-link" href="../../../development/index.html">Developer Guide</a>
</li>
</ul>
</li>
<li class="nav-item" data-depth="0">
<ul class="nav-list">
<li class="nav-item" data-depth="1">
<button class="nav-item-toggle"></button>
<a class="nav-link" href="../../../community/index.html">Community</a>
<ul class="nav-list">
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/mailing-lists.html">Mailing lists</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/contributing.html">Contributing</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/guidelines.html">Guidelines</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/download.html">Download releases</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/website.html">Building and publishing the website</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/release.html">Creating an official Apache James release</a>
</li>
<li class="nav-item" data-depth="2">
<a class="nav-link" href="../../../community/support.html">Professional support</a>
</li>
<li class="nav-item" data-depth="2">
<button class="nav-item-toggle"></button>
<span class="nav-text">Apache Software Foundation</span>
<ul class="nav-list">
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/">ASF</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/foundation/getinvolved.html">Get involved</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/foundation/faq.html">FAQ</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/licenses/">Licenses</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/security/">Security</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>
</li>
<li class="nav-item" data-depth="3">
<a class="nav-link" href="https://www.apache.org/foundation/thanks.html">Thanks</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</div>
<div class="nav-panel-explore" data-panel="explore">
<div class="context">
<span class="title">Apache James Server</span>
<span class="version">3.6.0 Snapshot</span>
</div>
<ul class="components">
<li class="component">
<div class="title"><a href="../../../../../james-distributed-app/3.8.1/index.html">Apache James Distributed Server</a></div>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../james-distributed-app/3.8.1/index.html">3.8.1 SNAPSHOT</a>
</li>
</ul>
</li>
<li class="component is-current">
<div class="title"><a href="../../../../3.8.1/index.html">Apache James Server</a></div>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../3.8.1/index.html">3.8.1 SNAPSHOT</a>
</li>
<li class="version is-current">
<a href="../../../index.html">3.6.0 Snapshot</a>
</li>
</ul>
</li>
<li class="component">
<div class="title"><a href="../../../../../james-site/latest/index.html">Apache James Site</a></div>
<ul class="versions">
<li class="version is-latest">
<a href="../../../../../james-site/latest/index.html">latest</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</aside>
</div>
<main class="article">
<div class="toolbar" role="navigation">
<button class="nav-toggle"></button>
<a href="../../../../../james-site/latest/homepage.html" class="home-link"></a>
<nav class="breadcrumbs" aria-label="breadcrumbs">
<ul>
<li><a href="../../../index.html">Apache James Server</a></li>
<li><a href="../../index.html">Servers</a></li>
<li><a href="../../distributed.html">Distributed</a></li>
<li><a href="index.html">Operate</a></li>
<li><a href="cli.html">Command Line Interface</a></li>
</ul>
</nav>
<div class="page-versions">
<button class="version-menu-toggle" title="Show other versions of page">3.6.0 Snapshot</button>
<div class="version-menu">
<a class="version is-missing" href="../../../../3.8.1/index.html">3.8.1 SNAPSHOT</a>
<a class="version is-current" href="cli.html">3.6.0 Snapshot</a>
</div>
</div>
<div class="edit-this-page"><a href="https://github.com/apache/james-project/blob/james-project-3.6.0/docs/modules/servers/pages/distributed/operate/cli.adoc">Edit this Page</a></div>
</div>
<div class="content">
<aside class="toc sidebar" data-title="Contents" data-levels="2">
<div class="toc-menu"></div>
</aside>
<article class="doc">
<h1 class="page">Distributed James Server &mdash; Command Line Interface</h1>
<div id="preamble">
<div class="sectionbody">
<div class="paragraph">
<p>The distributed server is packed with a command line client.</p>
</div>
<div class="paragraph">
<p>To run this command line client simply execute:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>java -jar /root/james-cli.jar -h 127.0.0.1 -p 9999 COMMAND</pre>
</div>
</div>
<div class="paragraph">
<p>The following document will explain you which are the available options
for <strong>COMMAND</strong>.</p>
</div>
<div class="paragraph">
<p>Note: the above command line before <strong>COMMAND</strong> will be documented as <em>{cli}</em>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_manage_domains"><a class="anchor" href="#_manage_domains"></a>Manage Domains</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Domains represent the domain names handled by your server.</p>
</div>
<div class="paragraph">
<p>You can add a domain:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} AddDomain domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>You can remove a domain:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} RemoveDomain domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>(Note: associated users are not removed automatically)</p>
</div>
<div class="paragraph">
<p>Check if a domain is handled:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ContainsDomain domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>And list your domains:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ListDomains</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_managing_users"><a class="anchor" href="#_managing_users"></a>Managing users</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Note: the following commands are explained with virtual hosting turned
on.</p>
</div>
<div class="paragraph">
<p>Users are accounts on the mail server. James can maintain mailboxes for
them.</p>
</div>
<div class="paragraph">
<p>You can add a user:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} AddUser user@domain.tld password</pre>
</div>
</div>
<div class="paragraph">
<p>Note: the domain used should have been previously created.</p>
</div>
<div class="paragraph">
<p>You can delete a user:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} RemoveUser user@domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>(Note: associated mailboxes are not removed automatically)</p>
</div>
<div class="paragraph">
<p>And change a user password:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} SetPassword user@domain.tld password</pre>
</div>
</div>
<div class="paragraph">
<p>Note: All these write operations can not be performed on LDAP backend,
as the implementation is read-only.</p>
</div>
<div class="paragraph">
<p>Finally, you can list users:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ListUsers</pre>
</div>
</div>
<div class="sect2">
<h3 id="_virtual_hosting"><a class="anchor" href="#_virtual_hosting"></a>Virtual hosting</h3>
<div class="paragraph">
<p>James supports virtualhosting.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If set to true in the configuration, then the username is the full
mail address.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>The domains then become a part of the user.</p>
</div>
<div class="paragraph">
<p><em>usera@domaina.com and</em> <em>usera@domainb.com</em> on a mail server with
<em>domaina.com</em> and <em>domainb.com</em> configured are mail addresses that
belongs to different users.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>If set to false in the configurations, then the username is the mail
address local part.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>It means that a user is automatically created for all the domains
configured on your server.</p>
</div>
<div class="paragraph">
<p><em>usera@domaina.com and</em> <em>usera@domainb.com</em> on a mail server with
<em>domaina.com</em> and <em>domainb.com</em> configured are mail addresses that
belongs to the same users.</p>
</div>
<div class="paragraph">
<p>Here are some sample commands for managing users when virtual hosting is
turned off:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} AddUser user password
{cli} RemoveUser user
{cli} SetPassword user password</pre>
</div>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_managing_mailboxes"><a class="anchor" href="#_managing_mailboxes"></a>Managing mailboxes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>An administrator can perform some basic operation on user mailboxes.</p>
</div>
<div class="paragraph">
<p>Note on mailbox formatting: mailboxes are composed of three parts.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The namespace, indicating what kind of mailbox it is. (Shared or
not?). The value for users mailboxes is #private . Note that for now no
other values are supported as James do not support shared mailboxes.</p>
</li>
<li>
<p>The username as stated above, depending on the virtual hosting value.</p>
</li>
<li>
<p>And finally mailbox name. Be aware that `.' serves as mailbox
hierarchy delimiter.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>An administrator can delete all of the mailboxes of a user, which is not
done automatically when removing a user (to avoid data loss):</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} DeleteUserMailboxes user@domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>He can delete a specific mailbox:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} DeleteMailbox #private user@domain.tld INBOX.toBeDeleted</pre>
</div>
</div>
<div class="paragraph">
<p>He can list the mailboxes of a specific user:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ListUserMailboxes user@domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>And finally can create a specific mailbox:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} CreateMailbox #private user@domain.tld INBOX.newFolder</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_adding_a_message_in_a_mailbox"><a class="anchor" href="#_adding_a_message_in_a_mailbox"></a>Adding a message in a mailbox</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The administrator can use the CLI to add a message in a mailbox. this
can be done using:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ImportEml #private user@domain.tld INBOX.newFolder /full/path/to/file.eml</pre>
</div>
</div>
<div class="paragraph">
<p>This command will add a message having the content specified in file.eml
(that needs to be at the EML format). It will get added in the
INBOX.subFolder mailbox belonging to user <a href="mailto:user@domain.tld">user@domain.tld</a>.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_managing_mappings"><a class="anchor" href="#_managing_mappings"></a>Managing mappings</h2>
<div class="sectionbody">
<div class="paragraph">
<p>A mapping is a recipient rewriting rule. There is several kind of
rewriting rules:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>address mapping: rewrite a given mail address into an other one.</p>
</li>
<li>
<p>regex mapping.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>You can manage address mapping like (redirects email from
<a href="mailto:fromUser@fromDomain.tld">fromUser@fromDomain.tld</a> to <a href="mailto:redirected@domain.new">redirected@domain.new</a>, then deletes the
mapping):</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} AddAddressMapping fromUser fromDomain.tld redirected@domain.new
{cli} RemoveAddressMapping fromUser fromDomain.tld redirected@domain.new</pre>
</div>
</div>
<div class="paragraph">
<p>You can manage regex mapping like this:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} AddRegexMapping redirected domain.new .*@domain.tld
{cli} RemoveRegexMapping redirected domain.new .*@domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>You can view mapping for a mail address:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ListUserDomainMappings user domain.tld</pre>
</div>
</div>
<div class="paragraph">
<p>And all mappings defined on the server:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ListMappings</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_manage_quotas"><a class="anchor" href="#_manage_quotas"></a>Manage quotas</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Quotas are limitations on a group of mailboxes. They can limit the
<strong>size</strong> or the <strong>messages count</strong> in a group of mailboxes.</p>
</div>
<div class="paragraph">
<p>James groups by defaults mailboxes by user (but it can be overridden),
and labels each group with a quotaroot.</p>
</div>
<div class="paragraph">
<p>To get the quotaroot a given mailbox belongs to:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetQuotaroot #private user@domain.tld INBOX</pre>
</div>
</div>
<div class="paragraph">
<p>Then you can get the specific quotaroot limitations.</p>
</div>
<div class="paragraph">
<p>For the number of messages:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetMessageCountQuota quotaroot</pre>
</div>
</div>
<div class="paragraph">
<p>And for the storage space available:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetStorageQuota quotaroot</pre>
</div>
</div>
<div class="paragraph">
<p>You see the maximum allowed for these values:</p>
</div>
<div class="paragraph">
<p>For the number of messages:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetMaxMessageCountQuota quotaroot</pre>
</div>
</div>
<div class="paragraph">
<p>And for the storage space available:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetMaxStorageQuota quotaroot</pre>
</div>
</div>
<div class="paragraph">
<p>You can also specify maximum for these values.</p>
</div>
<div class="paragraph">
<p>For the number of messages:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} SetMaxMessageCountQuota quotaroot value</pre>
</div>
</div>
<div class="paragraph">
<p>And for the storage space available:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} SetMaxStorageQuota quotaroot value</pre>
</div>
</div>
<div class="paragraph">
<p>With value being an integer. Please note the use of units for storage
(K, M, G). For instance:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} SetMaxStorageQuota someone@apache.org 4G</pre>
</div>
</div>
<div class="paragraph">
<p>Moreover, James allows to specify global maximum values, at the server
level. Note: syntax is similar to what was exposed previously.</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} SetGlobalMaxMessageCountQuota value
{cli} GetGlobalMaxMessageCountQuota
{cli} SetGlobalMaxStorageQuota value
{cli} GetGlobalMaxStorageQuota</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_re_indexing"><a class="anchor" href="#_re_indexing"></a>Re-indexing</h2>
<div class="sectionbody">
<div class="paragraph">
<p>James allow you to index your emails in a search engine, for making
search faster.</p>
</div>
<div class="paragraph">
<p>For some reasons, you might want to re-index your mails (inconsistencies
across datastore, migrations).</p>
</div>
<div class="paragraph">
<p>To re-index all mails of all mailboxes of all users, type:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} ReindexAll</pre>
</div>
</div>
<div class="paragraph">
<p>And for a specific mailbox:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} Reindex #private user@domain.tld INBOX</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_sieve_scripts_quota"><a class="anchor" href="#_sieve_scripts_quota"></a>Sieve scripts quota</h2>
<div class="sectionbody">
<div class="paragraph">
<p>James implements Sieve (RFC-5228). Your users can then write scripts
and upload them to the server. Thus they can define the desired behavior
upon email reception. James defines a Sieve mailet for this, and stores
Sieve scripts. You can update them via the ManageSieve protocol, or via
the ManageSieveMailet.</p>
</div>
<div class="paragraph">
<p>You can define quota for the total size of Sieve scripts, per user.</p>
</div>
<div class="paragraph">
<p>Syntax is similar to what was exposed for quotas. For defaults values:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetSieveQuota
{cli} SetSieveQuota value
{cli} RemoveSieveQuota</pre>
</div>
</div>
<div class="paragraph">
<p>And for specific user quotas:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} GetSieveUserQuota user@domain.tld
{cli} SetSieveQuota user@domain.tld value
{cli} RemoveSieveUserQuota user@domain.tld</pre>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_switching_of_mailbox_implementation"><a class="anchor" href="#_switching_of_mailbox_implementation"></a>Switching of mailbox implementation</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Migration is experimental for now. You would need to customize <strong>Spring</strong>
configuration to add a new mailbox manager with a different bean name.</p>
</div>
<div class="paragraph">
<p>You can then copy data across mailbox managers using:</p>
</div>
<div class="literalblock">
<div class="content">
<pre>{cli} CopyMailbox srcBean dstBean</pre>
</div>
</div>
<div class="paragraph">
<p>You will then need to reconfigure James to use the new mailbox manager.</p>
</div>
</div>
</div>
</article>
</div>
</main>
</div>
<footer class="footer">
<p>This page was built using the Antora default UI.</p>
<p>The source code for this UI is licensed under the terms of the MPL-2.0 license.</p>
</footer>
<script id="site-script" src="../../../../../_/js/site.js" data-ui-root-path="../../../../../_"></script>
<script async src="../../../../../_/js/vendor/highlight.js"></script>
</body>
</html>