You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/07/25 07:27:36 UTC
[1/2] james-project git commit: JAMES-2081 Implement and document
ImportEml CLI command
Repository: james-project
Updated Branches:
refs/heads/master 19d4dc0e7 -> 081102eab
JAMES-2081 Implement and document ImportEml CLI command
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/c2a21ffc
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/c2a21ffc
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/c2a21ffc
Branch: refs/heads/master
Commit: c2a21ffc0d23d96893f447535dc243686a3eb70f
Parents: 3a70ae8
Author: ilker yıldırım <il...@gmail.com>
Authored: Tue Jul 4 16:50:48 2017 +0300
Committer: benwa <bt...@linagora.com>
Committed: Mon Jul 10 14:58:09 2017 +0700
----------------------------------------------------------------------
.../james/mailbox/store/probe/MailboxProbe.java | 2 +
.../java/org/apache/james/cli/ServerCmd.java | 3 ++
.../james/cli/probe/impl/JmxMailboxProbe.java | 5 ++
.../java/org/apache/james/cli/type/CmdType.java | 1 +
.../org/apache/james/cli/ServerCmdTest.java | 51 ++++++++++++++++++++
.../org/apache/james/cli/type/CmdTypeTest.java | 6 +++
.../apache/james/modules/MailboxProbeImpl.java | 15 ++++++
.../mailbox/MailboxManagerManagement.java | 29 ++++++++++-
.../mailbox/MailboxManagerManagementMBean.java | 16 +++++-
.../adapter/mailbox/MailboxManagementTest.java | 43 +++++++++++++++++
.../src/test/resources/eml/frnog.eml | 17 +++++++
src/site/markdown/server/manage-cli.md | 13 ++++-
12 files changed, 198 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/MailboxProbe.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/MailboxProbe.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/MailboxProbe.java
index 2a64365..6878bb5 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/MailboxProbe.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/probe/MailboxProbe.java
@@ -40,6 +40,8 @@ public interface MailboxProbe {
void deleteMailbox(String namespace, String user, String name);
+ void importEmlFileToMailbox(String namespace, String user, String name, String emlpath) throws Exception;
+
ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, InputStream message, Date internalDate,
boolean isRecent, Flags flags) throws MailboxException;
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
index efbf4b6..5ad4e79 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/ServerCmd.java
@@ -266,6 +266,9 @@ public class ServerCmd {
case DELETEMAILBOX:
mailboxProbe.deleteMailbox(arguments[1], arguments[2], arguments[3]);
break;
+ case IMPORTEML:
+ mailboxProbe.importEmlFileToMailbox(arguments[1], arguments[2], arguments[3], arguments[4]);
+ break;
case GETSTORAGEQUOTA:
printStorageQuota(arguments[1], quotaProbe.getStorageQuota(arguments[1]), printStream);
break;
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
index ab2efc3..b3b5cc5 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/probe/impl/JmxMailboxProbe.java
@@ -84,6 +84,11 @@ public class JmxMailboxProbe implements MailboxProbe, JmxProbe {
}
@Override
+ public void importEmlFileToMailbox(String namespace, String user, String name, String emlpath) {
+ mailboxManagerManagement.importEmlFileToMailbox(namespace, user, name, emlpath);
+ }
+
+ @Override
public void reIndexMailbox(String namespace, String user, String name) throws Exception {
reIndexerManagement.reIndex(namespace, user, name);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java b/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
index 1858666..b94e0da 100644
--- a/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
+++ b/server/container/cli/src/main/java/org/apache/james/cli/type/CmdType.java
@@ -41,6 +41,7 @@ public enum CmdType {
CREATEMAILBOX("CreateMailbox", "namespace", "user", "name"),
LISTUSERMAILBOXES("ListUserMailboxes", "user"),
DELETEMAILBOX("DeleteMailbox", "namespace", "user", "name"),
+ IMPORTEML("ImportEml", "namespace", "user", "name", "path"),
GETSTORAGEQUOTA("GetStorageQuota", "quotaroot"),
GETMESSAGECOUNTQUOTA("GetMessageCountQuota", "quotaroot"),
GETQUOTAROOT("GetQuotaroot", "namespace", "user", "name"),
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
index 570167b..f8281b2 100644
--- a/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
+++ b/server/container/cli/src/test/java/org/apache/james/cli/ServerCmdTest.java
@@ -332,7 +332,24 @@ public class ServerCmdTest {
testee.executeCommandLine(commandLine);
control.verify();
}
+
+ @Test
+ public void importEmlFileToMailboxCommandShouldWork() throws Exception {
+ String user = "user@domain";
+ String namespace = "#private";
+ String name = "INBOX.test";
+ String emlpath = "./src/test/resources/eml/frnog.eml";
+ String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.IMPORTEML.getCommand(), namespace, user, name, emlpath};
+ CommandLine commandLine = ServerCmd.parseCommandLine(arguments);
+ mailboxProbe.importEmlFileToMailbox(namespace, user, name, emlpath);
+ expectLastCall();
+
+ control.replay();
+ testee.executeCommandLine(commandLine);
+ control.verify();
+ }
+
@Test
public void listUserMailboxesMappingsCommandShouldWork() throws Exception {
String user = "user@domain";
@@ -811,6 +828,23 @@ public class ServerCmdTest {
control.verify();
}
}
+
+
+ @Test(expected = InvalidArgumentNumberException.class)
+ public void importEmlFileToMailboxCommandShouldThrowOnMissingArguments() throws Exception {
+ String user = "user@domain";
+ String namespace = "#private";
+ String name = "INBOX.test";
+ String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.IMPORTEML.getCommand(), namespace, user, name};
+ CommandLine commandLine = ServerCmd.parseCommandLine(arguments);
+
+ control.replay();
+ try {
+ testee.executeCommandLine(commandLine);
+ } finally {
+ control.verify();
+ }
+ }
@Test(expected = InvalidArgumentNumberException.class)
public void listUserMailboxesMappingsCommandShouldThrowOnMissingArguments() throws Exception {
@@ -1091,6 +1125,23 @@ public class ServerCmdTest {
}
@Test(expected = InvalidArgumentNumberException.class)
+ public void importEmlFileToMailboxCommandShouldThrowOnAdditionalArguments() throws Exception {
+ String user = "user@domain";
+ String namespace = "#private";
+ String name = "INBOX.test";
+ String emlpath = "./src/test/resources/eml/frnog.eml";
+ String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.IMPORTEML.getCommand(), namespace, user, name, emlpath, ADDITIONAL_ARGUMENT};
+ CommandLine commandLine = ServerCmd.parseCommandLine(arguments);
+
+ control.replay();
+ try {
+ testee.executeCommandLine(commandLine);
+ } finally {
+ control.verify();
+ }
+ }
+
+ @Test(expected = InvalidArgumentNumberException.class)
public void listUserMailboxesMappingsCommandShouldThrowOnAdditionalArguments() throws Exception {
String user = "user@domain";
String[] arguments = { "-h", "127.0.0.1", "-p", "9999", CmdType.LISTUSERMAILBOXES.getCommand(), user, ADDITIONAL_ARGUMENT };
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java
----------------------------------------------------------------------
diff --git a/server/container/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java b/server/container/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java
index 3d66295..39b8d85 100644
--- a/server/container/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java
+++ b/server/container/cli/src/test/java/org/apache/james/cli/type/CmdTypeTest.java
@@ -139,6 +139,12 @@ public class CmdTypeTest {
}
@Test
+ public void lookupImportEmlFileToMailboxShouldReturnEnumValue() {
+ assertThat(CmdType.lookup("ImportEml"))
+ .isEqualTo(CmdType.IMPORTEML);
+ }
+
+ @Test
public void lookupSetDefaultMaxStorageQuotaShouldReturnEnumValue() {
assertThat(CmdType.lookup("setdefaultmaxstoragequota")).isEqualTo(CmdType.SETDEFAULTMAXSTORAGEQUOTA);
}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
----------------------------------------------------------------------
diff --git a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
index b478977..445fa46 100644
--- a/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
+++ b/server/container/guice/mailbox/src/main/java/org/apache/james/modules/MailboxProbeImpl.java
@@ -19,6 +19,7 @@
package org.apache.james.modules;
+import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Collection;
import java.util.Date;
@@ -55,6 +56,7 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
private final MailboxManager mailboxManager;
private final MailboxMapperFactory mailboxMapperFactory;
private final SubscriptionManager subscriptionManager;
+ public static final boolean RECENT = true;
@Inject
private MailboxProbeImpl(MailboxManager mailboxManager, MailboxMapperFactory mailboxMapperFactory, SubscriptionManager subscriptionManager) {
@@ -145,6 +147,19 @@ public class MailboxProbeImpl implements GuiceProbe, MailboxProbe {
}
@Override
+ public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) throws Exception {
+ MailboxSession mailboxSession = mailboxManager.createSystemSession(user, LOGGER);
+ mailboxManager.startProcessingRequest(mailboxSession);
+
+ MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), mailboxSession);
+ InputStream emlFileAsStream = new FileInputStream(emlPath);
+ messageManager.appendMessage(emlFileAsStream, new Date(), mailboxSession, RECENT, new Flags());
+
+ mailboxManager.endProcessingRequest(mailboxSession);
+ mailboxSession.close();
+ }
+
+ @Override
public ComposedMessageId appendMessage(String username, MailboxPath mailboxPath, InputStream message, Date internalDate, boolean isRecent, Flags flags)
throws MailboxException {
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
index 098af84..5f794a8 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagement.java
@@ -18,19 +18,23 @@
****************************************************************/
package org.apache.james.adapter.mailbox;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.inject.Named;
+import javax.mail.Flags;
import javax.management.NotCompliantMBeanException;
import javax.management.StandardMBean;
-import com.google.common.base.Preconditions;
import org.apache.james.lifecycle.api.LogEnabled;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
+import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxMetaData;
@@ -38,6 +42,8 @@ import org.apache.james.mailbox.model.MailboxPath;
import org.apache.james.mailbox.model.MailboxQuery;
import org.slf4j.Logger;
+import com.google.common.base.Preconditions;
+
/**
* JMX managmenent for Mailboxes
*/
@@ -45,6 +51,7 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
private MailboxManager mailboxManager;
private Logger log;
+ private static final boolean RECENT = true;
@Inject
public void setMailboxManager(@Named("mailboxmanager") MailboxManager mailboxManager) {
@@ -142,6 +149,26 @@ public class MailboxManagerManagement extends StandardMBean implements MailboxMa
}
}
+ @Override
+ public void importEmlFileToMailbox(String namespace, String user, String name, String emlPath) {
+ checkMailboxArguments(namespace, user, name);
+ checkString(emlPath, "email file path name");
+
+ MailboxSession session = null;
+ try {
+ session = mailboxManager.createSystemSession(user, log);
+ mailboxManager.startProcessingRequest(session);
+ MessageManager messageManager = mailboxManager.getMailbox(new MailboxPath(namespace, user, name), session);
+ InputStream emlFileAsStream = new FileInputStream(emlPath);
+ messageManager.appendMessage(emlFileAsStream, new Date(),
+ session, RECENT, new Flags());
+ } catch (Exception e) {
+ log.error("Unable to create mailbox", e);
+ } finally {
+ closeSession(session);
+ }
+ }
+
private void closeSession(MailboxSession session) {
if (session != null) {
mailboxManager.endProcessingRequest(session);
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
index f36d295..9485075 100644
--- a/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
+++ b/server/container/mailbox-adapter/src/main/java/org/apache/james/adapter/mailbox/MailboxManagerManagementMBean.java
@@ -58,4 +58,18 @@ public interface MailboxManagerManagementMBean {
* @param name Name of the mailbox to delete
*/
void deleteMailbox(String namespace, String user, String name);
-}
\ No newline at end of file
+
+ /**
+ * Import Eml File to the given mailbox
+ *
+ * @param namespace
+ * Namespace of the mailbox to import email file
+ * @param user
+ * User the mailbox to import email file belongs to
+ * @param name
+ * Name of the mailbox to import email file
+ * @param emlpath
+ * Name of the email file of this URL
+ */
+ void importEmlFileToMailbox(String namespace, String user, String name, String emlpath);
+}
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
index 4c4cc42..30385cd 100644
--- a/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
+++ b/server/container/mailbox-adapter/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java
@@ -21,18 +21,26 @@ package org.apache.james.adapter.mailbox;
import static org.assertj.core.api.Assertions.assertThat;
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.Iterator;
+
+import org.apache.commons.io.IOUtils;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
import org.apache.james.mailbox.model.MailboxConstants;
import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.MessageRange;
import org.apache.james.mailbox.store.JVMMailboxPathLocker;
import org.apache.james.mailbox.store.FakeAuthenticator;
import org.apache.james.mailbox.store.FakeAuthorizator;
import org.apache.james.mailbox.store.StoreMailboxManager;
+import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.Mailbox;
+import org.apache.james.mailbox.store.mail.model.MailboxMessage;
import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
import org.apache.james.mailbox.store.mail.model.impl.SimpleMailbox;
import org.junit.Before;
@@ -40,11 +48,14 @@ import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Charsets;
+
public class MailboxManagementTest {
private static final Logger LOGGER = LoggerFactory.getLogger(MailboxManagementTest.class);
public static final String USER = "user";
public static final int UID_VALIDITY = 10;
+ public static final int LIMIT = 1;
private MailboxManagerManagement mailboxManagerManagement;
private InMemoryMailboxSessionMapperFactory inMemoryMapperFactory;
@@ -236,6 +247,38 @@ public class MailboxManagementTest {
assertThat(inMemoryMapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox);
}
+ @Test
+ public void importEmlFileToMailboxShouldImportEmlFileToGivenMailbox() throws Exception {
+ Mailbox mailbox = new SimpleMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, "name"),
+ UID_VALIDITY);
+ inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
+ mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", emlpath);
+
+ assertThat(inMemoryMapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(1);
+ Iterator<MailboxMessage> iterator = inMemoryMapperFactory.getMessageMapper(session).findInMailbox(mailbox,
+ MessageRange.all(), MessageMapper.FetchType.Full, LIMIT);
+ MailboxMessage mailboxMessage = iterator.next();
+
+ assertThat(IOUtils.toString(new FileInputStream(new File(emlpath)), Charsets.UTF_8))
+ .isEqualTo(IOUtils.toString(mailboxMessage.getFullContent(), Charsets.UTF_8));
+ }
+
+ @Test
+ public void importEmlFileToMailboxShouldNotImportEmlFileWithWrongPathToGivenMailbox() throws Exception {
+ Mailbox mailbox = new SimpleMailbox(new MailboxPath(MailboxConstants.USER_NAMESPACE, USER, "name"),
+ UID_VALIDITY);
+ inMemoryMapperFactory.createMailboxMapper(session).save(mailbox);
+ String emlpath = ClassLoader.getSystemResource("eml/frnog.eml").getFile();
+ mailboxManagerManagement.importEmlFileToMailbox(MailboxConstants.USER_NAMESPACE, USER, "name", "wrong_path" + emlpath);
+
+ assertThat(inMemoryMapperFactory.getMessageMapper(session).countMessagesInMailbox(mailbox)).isEqualTo(0);
+ Iterator<MailboxMessage> iterator = inMemoryMapperFactory.getMessageMapper(session).findInMailbox(mailbox,
+ MessageRange.all(), MessageMapper.FetchType.Full, LIMIT);
+ assertThat(iterator.hasNext()).isFalse();
+ }
+
+
@Test(expected = NullPointerException.class)
public void deleteMailboxShouldThrowOnNullNamespace() {
mailboxManagerManagement.deleteMailbox(null, "a", "a");
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/server/container/mailbox-adapter/src/test/resources/eml/frnog.eml
----------------------------------------------------------------------
diff --git a/server/container/mailbox-adapter/src/test/resources/eml/frnog.eml b/server/container/mailbox-adapter/src/test/resources/eml/frnog.eml
new file mode 100644
index 0000000..ed3ec46
--- /dev/null
+++ b/server/container/mailbox-adapter/src/test/resources/eml/frnog.eml
@@ -0,0 +1,17 @@
+Message-ID: <556D7ED7.2090108>
+Date: Tue, 2 Jun 2015 12:00:55 +0200
+From: sender <se...@domain.com>
+MIME-Version: 1.0
+To: <li...@james.org>
+Content-Type: text/plain; charset="utf-8"; format=flowed
+Content-Transfer-Encoding: 8bit
+
+Bonjour
+
+
+Je cherche un partenaire.
+
+Merci d'avance !
+
+
+Cordialement,
http://git-wip-us.apache.org/repos/asf/james-project/blob/c2a21ffc/src/site/markdown/server/manage-cli.md
----------------------------------------------------------------------
diff --git a/src/site/markdown/server/manage-cli.md b/src/site/markdown/server/manage-cli.md
index 3906f45..e528edf 100644
--- a/src/site/markdown/server/manage-cli.md
+++ b/src/site/markdown/server/manage-cli.md
@@ -140,9 +140,20 @@ He can list the mailboxes of a specific user:
And finally can create a specific mailbox:
```
-{cli} CreateMailbox #private user@domain.tld INBO.newFolder
+{cli} CreateMailbox #private user@domain.tld INBOX.newFolder
```
+## Adding a message in a mailbox
+
+The administrator can use the CLI to add a message in a mailbox. this can be done using:
+
+```
+{cli} ImportEml #private user@domain.tld INBOX.newFolder /full/path/to/file.eml
+```
+
+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 user@domain.tld.
+
## Managing mappings
A mapping is a recipient rewritting rule. There is several kind of rewritting rules:
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org
[2/2] james-project git commit: Merge remote-tracking branch
'btellier/JAMES-2081'
Posted by ad...@apache.org.
Merge remote-tracking branch 'btellier/JAMES-2081'
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/081102ea
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/081102ea
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/081102ea
Branch: refs/heads/master
Commit: 081102eab17a916a93579b84f7b6fb8f498b3ca4
Parents: 19d4dc0 c2a21ff
Author: Antoine Duprat <ad...@linagora.com>
Authored: Tue Jul 25 09:27:00 2017 +0200
Committer: Antoine Duprat <ad...@linagora.com>
Committed: Tue Jul 25 09:27:00 2017 +0200
----------------------------------------------------------------------
.../james/mailbox/store/probe/MailboxProbe.java | 2 +
.../java/org/apache/james/cli/ServerCmd.java | 3 ++
.../james/cli/probe/impl/JmxMailboxProbe.java | 5 ++
.../java/org/apache/james/cli/type/CmdType.java | 1 +
.../org/apache/james/cli/ServerCmdTest.java | 51 ++++++++++++++++++++
.../org/apache/james/cli/type/CmdTypeTest.java | 6 +++
.../apache/james/modules/MailboxProbeImpl.java | 15 ++++++
.../mailbox/MailboxManagerManagement.java | 29 ++++++++++-
.../mailbox/MailboxManagerManagementMBean.java | 16 +++++-
.../adapter/mailbox/MailboxManagementTest.java | 43 +++++++++++++++++
.../src/test/resources/eml/frnog.eml | 17 +++++++
src/site/markdown/server/manage-cli.md | 13 ++++-
12 files changed, 198 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org