Mail samples

Basics

On most methods, you'll see the parameter named "mailId". The value of this parameter can be a valid mail UUID.

Example of fldId:

  • Using UUID -> "50b7a5b9-89d2-430e-bbc9-6a6e01662a71"

Suggested code sample

First, you must create the webservice object:

OKMWebservices ws = OKMWebservicesFactory.newInstance(host);

Then you should log in using the "login" method. You can access the "login" method from the webservice object "ws" as shown below:

ws.login(user, password);

Once you are logged in with the webservices, the session is kept in the webservice object. Then you can use the other API methods.

At this point you can use all the Mail methods from the "mail" class as shown below:

ws.mail.getProperties("05d9b8e3-f9c1-4ace-9007-afd775dbbced")

Methods

getProperties

Description:

Method Return values Description

getProperties(String uuid)

Mail

Returns the mail properties.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); System.Console.WriteLine(ws.mail.getProperties("f0064cf3-4776-44c2-868a-f08697a6957e").toString()); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

delete

Description:

Method Return values Description

delete(String uuid)

void

Deletes a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.delete("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

purge

Description:

Method Return values Description

purge(String uuid)

void

Folder is permanently removed from the repository.

Usually, you will purge mails into /okm:trash/userId - the personal trash user location - but it is possible to directly purge any mail from the repository.

When a mail is purged, it can only be restored from a previous repository backup. The purge action removes the mail permanently from the repository.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.purge("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

rename

Description:

Method Return values Description

rename(String uuid, String newName)

void

Renames a mail.

From the OpenKM frontend UI, the subject is used to show the mail name in the file browser table. That means the change will take effect internally on the mail path, but will not be visible in the default UI.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.rename("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "new name"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

move

Description:

Method Return values Description

move(String uuid, String dstId)

void

Moves a mail into a folder or record.

The values of the dstId parameter should be a folder or record UUID.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.move("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "055e4384-7c70-4456-b32b-f5a55a79861f"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

copy

Description:

Method Return values Description

public void copy(String mailId, String dstId, String newName)

Mail

Copies mail into a folder or record.

The values of the dstId parameter should be a folder or record UUID.

When the newName parameter value is null, the mail will preserve the same name.

Only the security grants are copied to the destination, the metadata, keywords, etc. of the folder are not copied.

See "extendedCopy" method for this feature.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.copy("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "055e4384-7c70-4456-b32b-f5a55a79861f", "new_name"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

extendedCopy

Description:

Method Return values Description

extendedCopy(String mailId, String dstId, bool categories, bool keywords, bool propertyGroups, bool notes, bool security, String newName)

Mail

Copies mail with associated data into a folder or record.

The values of the dstId parameter should be a folder or record UUID.

By default, only the binary data and the security grants are copied; the metadata, keywords, etc. of the folder are not copied.

Additional:

  • When the category parameter is true the original values of the categories will be copied.
  • When the keywords parameter is true the original values of the keywords will be copied.
  • When the property groups parameter is true the original values of the metadata groups will be copied.
  • When the notes parameter is true the original values of the notes will be copied.
  • When the wiki parameter is true the original values of the wiki will be copied.
  • When newName is set the mail name is renamed.
  • When the security parameter is true the original value of the security will be copied.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.extendedCopy("fe51797c-be0b-4076-8f4b-b4fffe8fd2bc", "055e4384-7c70-4456-b32b-f5a55a79861f", true, true, true, true, true, null); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getChildren

Description:

Method Return values Description

 getChildren(String fldId)

List<Mail>

Returns a list of all mails whose parent is fldId.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); foreach (Mail mail in ws.mail.getChildren("055e4384-7c70-4456-b32b-f5a55a79861f")) { System.Console.WriteLine(mail); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

isValid

Description:

Method Return values Description

isValid(String mailId)

Boolean

Returns a boolean that indicates whether the node is a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); // Return true ws.mail.isValid("50b7a5b9-89d2-430e-bbc9-6a6e01662a71"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getPath

Description:

Method Return values Description

getPath(String mailId)

String

Converts a mail UUID to a folder path.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); System.Console.WriteLine(ws.mail.getPath("50b7a5b9-89d2-430e-bbc9-6a6e01662a71")); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

createAttachment

Description:

Method Return values Description

createAttachment(String mailId, String docName, InputStream is)

Document

Stores an attachment in the mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
using System.IO;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
             try {
ws.login(user, password); FileStream fs = new FileStream("E:\\logo.png", FileMode.Open); ws.mail.createAttachment("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "log.png", fs); fs.Dispose(); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteAttachment

Description:

Method Return values Description

deleteAttachment(String mailId, String docId)

void

Deletes a mail attachment.

The docId parameter value can be a valid document UUID or path.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password);                 ws.mail.deleteAttachment("50b7a5b9-89d2-430e-bbc9-6a6e01662a71", "e339f14b-4d3a-489c-91d3-05e4575709d2"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getAttachments

Description:

Method Return values Description

getAttachments(String mailId)

List<Document>

Retrieves a list of all document attachments of a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); foreach (Document doc in ws.mail.getAttachments("50b7a5b9-89d2-430e-bbc9-6a6e01662a71")) { System.Console.WriteLine(doc); } } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

sendMailWithAttachments

Description:

Method Return values Description

sendMailWithAttachments(String from, List<String> to, List<String> cc, List<String> bcc, List<String> replyTo, String subject,
String body, List<String> docsId, String uuid)

Mail

Sends a mail message with an attachment.

The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicates where the mail will be stored in the repository after being sent.

Other parameters:

  • to is a list of destination email addresses.
  • subject is the mail subject.
  • cc and bcc are lists of destination email addresses (optional)
  • docsId is a list of valid document UUIDs already in OpenKM that will be sent as attachments in the mail (optional).

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password);
string from = "test@none.com"; List<String> to = new List<String>(); to.Add("destination@mail.com"); List<String> cc = new List<String>(); List<String> bcc = new List<String>(); List<String> docsId = new List<String>();
List<String> replyTo= new List<String>(); docsId.Add("7aa523e0-06cf-4733-b8c8-cc74d8b2716d"); docsId.Add("f123a950-0329-4d62-8328-0ff500fd42db"); ws.mail.sendMailWithAttachments(from, to, cc, bcc, replyTo, "some subject", "This mail its a test.", docsId, "055e4384-7c70-4456-b32b-f5a55a79861f"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

importEml

Description:

Method Return values Description

importEml(String dstId, String title, FileStream fs)

Mail

Imports a mail in EML format.

The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicates where the mail will be stored in the repository after being sent.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
using System.IO;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); FileStream filestream = new FileStream("C:\\Documents\\test.eml", FileMode.Open); Mail mail = ws.mail.importEml("f123a950-0329-4d62-8328-0ff500fd42db", "Test", filestream); System.Console.WriteLine(mail); filestream.Close(); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

importMsg

Description:

Method Return values Description

importMsg(String dstId, String title, FileStream fs)

Mail

Imports a mail in MSG format.

The values of the dstId parameter should be a folder or record UUID or path. The dstId parameter indicates where the mail will be stored in the repository after being sent.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
using System.IO;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); FileStream filestream = new FileStream("C:\\Documents\\test.msg", FileMode.Open); Mail mail = ws.mail.importMsg("f123a950-0329-4d62-8328-0ff500fd42db", "Test", filestream); System.Console.WriteLine(mail); filestream.Close(); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setTitle

Description:

Method Return values Description

setTitle(String mailId, String title)

Mail

Sets the mail title.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.setTitle("68ed7a93-005c-4ec6-ac01-bb151573c775", "new title"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

sendMail

Description:

Method Return values Description

sendMail(String to, String subject, String body)

Void

Sends a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); ws.mail.sendMail("some@none.com", "Testing sending mail", "Test message body."); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

sendMail

 Description:

Method Return values Description

sendMail(List<String> to, String subject, String body)

Void

Sends a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password); List<String> to = new List<string>(); to.Add("some@mail.com"); ws.mail.sendMail(to, "Testing sending mail from OpenKM", "Test message body."); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

sendMail

Description:

Method Return values Description

sendMail(String from, List<String> to, String subject, String body)

Void

Sends a mail.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);
try {
ws.login(user, password);
string from = "test@mome.com" List<String> to = new List<string>(); to.Add("some@mail.com"); ws.mail.sendMail(from, to, "Testing sending mail from OpenKM", "Test message body."); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setNodeClass

Description:

Method Return values Description

setNodeClass(String mailId, long ncId)

void

Sets the mail node class.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.setNodeClass("68ed7a93-005c-4ec6-ac01-bb151573c775", ncId); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setDescription

Description:

Method Return values Description

setDescription(String mailId, String description)

void

Sets the mail title.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); ws.mail.setDescription("68ed7a93-005c-4ec6-ac01-bb151573c775", "Any description"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getContent

Description:

Method Return values Description

getContent(String mailId)

Stream

Sets the mail title.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password);  Stream s = ws.mail.getContent("68ed7a93-005c-4ec6-ac01-bb151573c775");
FileStream mailFile = new FileStream("C:\\mailtest.msg", FileMode.OpenOrCreate);
s.CopyTo(mailFile);
s.Close();
mailFile.Close(); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getThumbnail

Description:

Method Return values Description

getThumbnail(String mailId, ThumbnailType type)

Stream

Returns thumbnail image data.

Available types:

  • ThumbnailType.THUMBNAIL_PROPERTIES ( shown in properties view )
  • ThumbnailType.THUMBNAIL_LIGHTBOX ( shown in light box )
  • ThumbnailType.THUMBNAIL_SEARCH ( shown in search view )

Each thumbnail type has its own image dimensions.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password); Stream s = ws.mail.getThumbnail("68ed7a93-005c-4ec6-ac01-bb151573c775", ThumbnailType.THUMBNAIL_PROPERTIES); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

setDispositionStage

Description:

Method Return values Description

setDispositionStage(String uuid, long stage)

void

Sets the mail disposition stage.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
try {
ws.login(user, password);
long stage = 1;
ws.mail.setDispositionStage("f0064cf3-4776-44c2-868a-f08697a6957e", stage); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

createWizard

Description:

Method Return values Description

createWizard(String uuid, String title, FileStream fileStream, String type) 

WizardNode

Creates a mail with a wizard.

The Wizard node contains the steps that might be followed by the wizard:

  • Metadata groups
  • Keywords
  • Categories

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);

            try
            {
                ws.login(user, password);
                Folder fld = ws.createFolder("f123a950-0329-4d62-8328-0ff500fd42db", "Test");
FileStream filestream = new FileStream("C:\\testing.msg", FileMode.Open, FileAccess.Read);
WizardNode wn = ws.mail.createWizard(fld.uuid, "Any title", filestream, Mail.ORIGIN_MSG);
filestream.Close();
System.Console.WriteLine(wn.toString()); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getMailsPaginated

Description:

Method Return values Description

getMailsPaginated(String context, int offset, int limit, MailFilterQuery filter, String orderColumn, bool orderAsc) 

SimpleNodeBaseResultSet

Returns a paginated list of email results filtered by the values of the MailFilterQuery parameter.

The parameters "limit" and "offset" allow you to retrieve just a portion of the results of a query.

  • The parameter "limit" is used to limit the number of results returned.
  • The parameter "offset" specifies how many results to skip before returning results.
  • The parameter "filter" must be the canonical class name of the class which implements the NodeProperties interface.
  • The parameter "orderColumn" can have the following values: uuid, subject, from, sentDate and hasAttachments.
  • The parameter "orderAsc" can be "true" in case of ascending order and "false" otherwise.

For example, if your query has 1000 results, but you only want to return the first 10, you should use these values:

  • limit=10
  • offset=0

Now suppose you want to show the results from 11-20, you should use these values:

  • limit=10
  • offset=10

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host);

            try
            {
                ws.login(user, password);
                MailFilterQuery filter = new MailFilterQuery();
filter.subject = "";
filter.attachments = AttachmentEnum.ALL;
String orderColumn = "subject";
SimpleNodeBaseResultSet simpleNodeBaseResultSet = ws.mail.getMailsPaginated(0, 10, filter, orderColumn, true);

foreach (SimpleNodeBase simpleNodeBase in simpleNodeBaseResultSet)
{
System.Console.WriteLine(simpleNodeBase.toString());
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getAccounts

Description:

Method Return values Description

getAccounts()

List<MailAccount>

Retrieves a list of user email accounts.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
                foreach (MailAccount mail in ws.mail.getAccounts())
                {
                    System.Console.WriteLine(mail.toString());
                }
            } 
            catch (Exception e)
            {
                System.Console.WriteLine(e.ToString());
            } 
        }
    }
}

getMailMessages

Description:

Method Return values Description

getMailMessages(long accountId, long start)

MailServerMessages

Retrieves a list of messages in the email server for an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
long accoundId = 1;
long start = 1;
MailServerMessages msm = ws.mail.getMailMessages(accoundId, start); System.Console.WriteLine(msm.toString()); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

addAccount

Description:

Method Return values Description

addAccount(MailAccount mailAccount)

void

Add an email account.

It is good practice to create an account and verify the mail configuration with testMailAccount(MailAccount mail).

When you do not set the user, the account will be added by default to the currently logged-in user.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
MailAccount mailAcount = new MailAccount();
mailAcount.mailProtocol = MailAccount.PROTOCOL_IMAPS;
mailAcount.mailUser = "test@none.com";
mailAcount.mailPassword = "123456";
mailAcount.mailHost = "imap.gmail.com";
mailAcount.mailFolder = "OpenKM";
mailAcount.active = true;
mailAcount.recursive = true;
ws.mail.addAccount(mailAcount); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

updateAccount

Description:

Method Return values Description

updateAccount(MailAccount mailAccount)

void

Updates the main configuration data of an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
MailAccount mailAcount = new MailAccount();
mailAcount.id = 1;// Valid mail account id;
mailAcount.mailProtocol = MailAccount.PROTOCOL_IMAPS;
mailAcount.mailUser = "test@none.com";
mailAcount.mailPassword = "123456";
mailAcount.mailHost = "imap.gmail.com";
mailAcount.mailFolder = "OpenKM";
mailAcount.active = false;
mailAcount.mailMarkDeleted = false;
mailAcount.recursive = false;
ws.mail.updateAccount(mailAcount); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

testAccount

Description:

Method Return values Description

testAccount(MailAccount mailAccount)

void

Verify the connectivity of an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
MailAccount mailAcount = new MailAccount();
mailAcount.mailProtocol = MailAccount.PROTOCOL_IMAPS;
mailAcount.mailUser = "test@none.com";
mailAcount.mailPassword = "123456";
mailAcount.mailHost = "imap.gmail.com";
mailAcount.mailFolder = "OpenKM";
mailAcount.active = true;
mailAcount.recursive = true;

// Test mail account
ws.mail.testAccount(mailAcount); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteAccount

Description:

Method Return values Description

deleteAccount(long mailAccountId)

void

Delete an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
long mailId = 1; //Valid mail id
ws.mail.deleteAccount(mailId); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

importMessages

Description:

Method Return values Description

importMessages(long mailAccountId, List<long> messageIds)

void

Import messages from a specific email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
List<long> messageIds = new List<long>();
messageIds.Add(1);
long mailAccountId = 1; // Valid mail id
ws.mail.importMessages(mailAccountId, messageIds); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

createFilter

Description:

Method Return values Description

createFilter(long mailAccountId, MailFilter mailFilter)

void

Add a filter to an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
Folder fld = ws.createFolder("f123a950-0329-4d62-8328-0ff500fd42db", "FilterFolder");
// Valid mail account id
long mailAccountId = 1;
MailFilter filter = new MailFilter();
filter.order = 0;
filter.grouping = false;
filter.exclusive = true;
filter.active = false;
filter.node = fld.uuid;
ws.mail.createFilter(mailAccountId, filter); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

updateFilter

Description:

Method Return values Description

updateFilter(MailFilter mailFilter)

void

Update the filter of an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
  MailFilter filter = new MailFilter();
filter.id = 1; // Valid filter id
filter.grouping = true;
filter.exclusive = false;
filter.active = true;
ws.mail.updateFilter(filter); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteFilter

Description:

Method Return values Description

deleteFilter(long mailFilterId)

void

Delete a filter from an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);                
long filterId = 1; // Valid filter id
ws.mail.deleteFilter(filterId); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

createRule

Description:

Method Return values Description

createRule(long filterId, MailFilterRule rule)

void

Create a rule for an email filter.


 Mail account filter parameters:

  • Field:           Sets the mail field that will be evaluated by the rule.
                         Available options are: From, To, Subject and Content
                         - MailFilterRule.FIELD_FROM
                         - MailFilterRule.FIELD_TO
                         - MailFilterRule.FIELD_SUBJECT
                         - MailFilterRule.FIELD_CONTENT
                         - MailFilterRule.FIELD_ATTACHMENT
  • Operation:  Set the operation that will be used for the evaluation process. 
                         Available options are:  Contains and Equal   
                         - MailFilterRule.OPERATION_EQUALS
                         - MailFilterRule.OPERATION_NOT_EQUALS
                         - MailFilterRule.OPERATION_CONTAINS
                         - MailFilterRule.OPERATION_ENDS_WITH
                         - MailFilterRule.OPERATION_STARTS_WITH
  • Value:          Sets the value that will be used for the evaluation process.   
  •  Active:       Sets whether the rule is enabled or not.                                  

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);                
MailFilterRule rule = new MailFilterRule();
rule.operation = MailFilterRule.OPERATION_CONTAINS;
rule.value = "test";
rule.field = MailFilterRule.FIELD_FROM;
rule.active = false;
long filterId = 1;// Valid filter id
ws.mail.createRule(filterId, rule); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

updateRule

Description:

Method Return values Description

updateRule(MailFilterRule rule)

void

Update a rule of an email account.


 Mail account filter parameters:

  • Field: Sets the mail field that will be evaluated by the rule.

Available options are: 

  • MailFilterRule.FIELD_FROM
  • MailFilterRule.FIELD_TO
  • MailFilterRule.FIELD_SUBJECT
  • MailFilterRule.FIELD_CONTENT
  • MailFilterRule.FIELD_ATTACHMENT               

  • Operation:  Set the operation that will be used for the evaluation process. 

Available options are:

  • MailFilterRule.OPERATION_EQUALS
  • MailFilterRule.OPERATION_NOT_EQUALS
  • MailFilterRule.OPERATION_CONTAINS
  • MailFilterRule.OPERATION_ENDS_WITH
  • MailFilterRule.OPERATION_STARTS_WITH

  • Value: Sets the value that will be used for the evaluation process.   
  • Active: Sets whether the rule is enabled or not.                                  

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);                
List<MailFilterRule> rules = ws.getMailFilterRules(filter.id);
if (rules != null && rules.Count > 0)
{
// Update rule
MailFilterRule rule = new MailFilterRule();
rule.id = rules[0].id;
rule.operation = MailFilterRule.OPERATION_EQUALS;
rule.value = "Any";
rule.field = MailFilterRule.FIELD_SUBJECT;
rule.active = true;
ws.mail.updateRule(rule);
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

deleteRule

Description:

Method Return values Description

deleteRule(long ruleId)

void

Delete a rule of an email account.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);                
long ruleId = 1; // Valid rule id
ws.mail.deleteRule(ruleId); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getFilterRules

Description:

Method Return values Description

getFilterRules(long filterId)

List<MailFilterRule>

Retrieve a list of all associated filter rules.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
  long filterId = 1; // Valid filter id
foreach (MailFilterRule mfrule in ws.mail.getFilterRules(filterId))
{
System.Console.WriteLine(mfrule.toString());
} } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

forwardEmail

Description:

Method Return values Description

forwardEmail(String uuid, List<String> users, List<String> roles, List<String> mails, String message)

void

Forward an email to a list of users, roles, or external email addresses.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
            
            try
            {
                ws.login(user, password);
  string mailUuid = "f123a950-0329-4d62-8328-0ff500fd42db";
List<string> users = new List<string>();
users.Add("userTest");
List<string> roles = new List<string>();
roles.Add("ROLE_USER");
List<string> mails = new List<string>();
mails.Add("test@none.com");
ws.mail.forwardEmail(mailUuid, users, roles, mails, "Any message"); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getPdf

Description:

Method Return values Description

getPdf(String uuid)

Stream

Returns a PDF of the email.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
using com.openkm.sdk4csharp.impl; namespace OKMRest { public class Program { static void Main(string[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservice ws = OKMWebservicesFactory.newInstance(host);              try { ws.login(user, password);
Mail mail = ws.mail.getMailProperties("4b88cbe9-e73d-45fc-bac0-35e0d6e59e43");
Stream stream = ws.mail.getPdf(mail.uuid);
FileStream mailFile = new FileStream("D:\\" + mail.subject + ".pdf", FileMode.OpenOrCreate, FileAccess.ReadWrite);
stream.CopyTo(mailFile);
stream.Close();
mailFile.Close(); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

saveAsPdf

Description:

Method Return values Description

saveAsPdf(String uuid, String newName, bool propertyGroups, bool security)

Document

Save the email as a PDF in the OpenKM repository.

The value of the uuid parameter should be a Mail UUID.

When the newName parameter value is null, the document will preserve the same name.

Additional:

  •  When the propertyGroups parameter is true, the metadata groups of the source are copied to the target.
  • When the security parameter is true, the security of the source is copied to the target.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;
using com.openkm.sdk4csharp.bean;
using com.openkm.sdk4csharp.impl; namespace OKMRest { public class Program { static void Main(string[] args) { String host = "http://localhost:8080/openkm"; String username = "okmAdmin"; String password = "admin"; OKMWebservice ws = OKMWebservicesFactory.newInstance(host);              try { ws.login(user, password);
Mail mail = ws.mail.getMailProperties("4b88cbe9-e73d-45fc-bac0-35e0d6e59e43");
Document docPdf = ws.mail.saveAsPdf(mail.uuid, mail.subject + ".pdf", true, true);
System.Console.WriteLine("Document pdf: " + docPdf.path); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }

getExtractedText

Description:

Method Return values Description

getExtractedText(String uuid)

String

Get the extracted text.

Example:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using com.openkm.sdk4csharp;

namespace OKMRest
{
    public class Program
    {
        static void Main(string[] args)
        {
            String host = "http://localhost:8080/openkm";
            String username = "okmAdmin";
            String password = "admin";
            OKMWebservice ws = OKMWebservicesFactory.newInstance(host); 
             try {
ws.login(user, password); System.Console.WriteLine(ws.mail.getExtractedText("50b7a5b9-89d2-430e-bbc9-6a6e01662a71")); } catch (Exception e) { System.Console.WriteLine(e.ToString()); } } } }