OKMMail
Conceptos básicos
Sección titulada «Conceptos básicos»En casi todos los métodos verá un parámetro llamado “mailId”. El valor de este parámetro puede ser el UUID o la ruta de un correo válido.
Sobre el parámetro llamado “fldId”, el valor de este parámetro puede ser el UUID o la ruta de una carpeta válida, o un nodo de tipo expediente (record).
Además, en todos los métodos verá un parámetro llamado “token”. Cuando se accede a la aplicación mediante SOAP, el proceso de inicio de sesión devuelve un token, que se utiliza para identificar al usuario en todos los métodos expuestos. Desde el contexto de ejecución por defecto de la aplicación debe utilizar el valor “null”, que indica a la aplicación que debe utilizar la “sesión del usuario”.
Métodos
Sección titulada «Métodos»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| create(String token, Mail mail) | Crea un nuevo correo y devuelve como resultado un objeto Mail. |
- La variable path del parámetro mail debe estar inicializada. Indica la ruta de la carpeta en OpenKM.
- Otras variables obligatorias:
Ejemplo:
package com.openkm;
import java.util.Arrays;import java.util.Calendar;
import org.owasp.encoder.Encode;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { Mail mail = new Mail();
// Mail path = msgId + escaped(subject) String msgId = "2937b81d-0b10-4dd0-a426-9acbd80be1c9"; String subject = "some subject"; String mailPath = "/okm:root/"+ msgId + "-" + escape(subject); mail.setPath(mailPath);
// Other format for mail "some name <no_reply@openkm.com>" mail.setFrom("<no_reply@openkm.com>"); mail.setTo((String[])Arrays.asList("anonymous@gmail.com").toArray());
// You should set real dates mail.setSentDate(Calendar.getInstance()); mail.setReceivedDate(Calendar.getInstance()); mail.setContent("some content"); mail.setMimeType(Mail.MIME_TEXT); mail.setSubject(subject); mail.setOrigin(Mail.ORIGIN_API);
// Get only as an approximation of real size for these sample mail.setSize(mail.toString().getBytes("UTF-8").length); OKMMail.getInstance().create(null, mail); } catch (Exception e) { e.printStackTrace(); } }
private static String escape(String name) { String ret = cleanup(name);
// Fix XSS issues ret = Encode.forHtml(ret);
return ret; }
private static String cleanup(String name) { String ret = name.replace("/", ""); ret = ret.replace("*", ""); ret = ret.replaceAll("\\s+", " ").trim(); return ret; }}getProperties
Sección titulada «getProperties»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getProperties(String token, String mailId) | Devuelve las propiedades del correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { Mail mail = OKMMail.getInstance().getProperties(null, "064ff51a-b815-4f48-a096-b4946876784f"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}createAttachment
Sección titulada «createAttachment»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createAttachment(String token, String mailId, String docName, InputStream is) | Document | Añade un adjunto al correo. |
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.poi.util.IOUtils;
import com.openkm.api.OKMMail;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/test/sample.pdf"); Document doc = OKMMail.getInstance().createAttachment(null, "064ff51a-b815-4f48-a096-b4946876784f", "sample.pdf", is); System.out.println(doc); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}deleteAttachment
Sección titulada «deleteAttachment»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| deleteAttachment(String token, String mailId, String docId) | void | Elimina un adjunto del correo. |
Ejemplo:
package com.openkm;
import java.io.InputStream;
import org.apache.poi.util.IOUtils;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { InputStream is = null; try { OKMMail.getInstance().deleteAttachment(null, "064ff51a-b815-4f48-a096-b4946876784f", "f123a950-0329-4d62-8328-0ff500fd42db"); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}getAttachments
Sección titulada «getAttachments»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getAttachments(String token, String mailId) | List |
Devuelve una lista con todos los adjuntos de un correo. |
Ejemplo:
package com.openkm;
import java.io.InputStream;
import org.apache.poi.util.IOUtils;
import com.openkm.api.OKMMail;import com.openkm.bean.Document;
public class Test { public static void main(String[] args) { InputStream is = null; try { for (Document doc : OKMMail.getInstance().getAttachments(null, "064ff51a-b815-4f48-a096-b4946876784f")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| delete(String token, String mailId) | void | Elimina un correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Folder;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().delete(null, "064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purge(String token, String mailId) | void | El correo se elimina definitivamente del repositorio. |
- Normalmente purgará correos de /okm:trash/userId (las ubicaciones de la papelera personal del usuario), pero es posible purgar directamente cualquier correo de todo el repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().purge(null, "064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| rename(String token, String mailId, String newName) | Renombra un correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Folder;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().rename(null, "064ff51a-b815-4f48-a096-b4946876784f", "newname"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| move(String token, String mailId, String dstId) | void | Mueve un correo a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Folder;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().move(null, "064ff51a-b815-4f48-a096-b4946876784f", "/okm:root/move/destination"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String mailId, String dstId) | void | Copia un correo en una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Folder;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().copy(null, "064ff51a-b815-4f48-a096-b4946876784f", "/okm:root/move/destination"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String mailId, String dstId, String newName) | void | Copia un correo en una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente.
- Cuando el valor del parámetro newName es null, el correo conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Folder;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().copy(null, "064ff51a-b815-4f48-a096-b4946876784f", "/okm:root/move/destination", "newname"); } catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String mailId, String dstId, ExtendedAttributes extAttr) | void | Copia un correo con los datos asociados en una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.ExtendedAttributes;
public class Test { public static void main(String[] args) { try { ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); OKMMail.getInstance().extendedCopy(null, "064ff51a-b815-4f48-a096-b4946876784f","/okm:root/test", extAttr);
} catch (Exception e) { e.printStackTrace(); } }}extendedCopy
Sección titulada «extendedCopy»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| extendedCopy(String token, String mailId, String dstId, ExtendedAttributes extAttr, String newName) | void | Copia un correo con los datos asociados en una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente.
- Cuando el valor del parámetro newName es null, el correo conservará el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.ExtendedAttributes;
public class Test { public static void main(String[] args) { try { ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setKeywords(true); OKMMail.getInstance().extendedCopy(null, "064ff51a-b815-4f48-a096-b4946876784f","/okm:root/test", extAttr, "new_name");
} catch (Exception e) { e.printStackTrace(); } }}getChilds
Sección titulada «getChilds»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getChilds(String token, String fldId) | List |
Devuelve una lista con todos los correos cuyo padre es mailId. |
- El parámetro mailId puede ser una carpeta o un nodo de tipo expediente (record).
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { for (Mail mail : OKMMail.getInstance().getChilds(null, "/okm:root/test")) { System.out.println(mail); } } catch (Exception e) { e.printStackTrace(); } }}getChildren
Sección titulada «getChildren»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getChildren(String token, String fldId) | List |
Devuelve una lista con todos los correos cuyo padre es mailId. |
- El parámetro mailId puede ser una carpeta o un nodo de tipo expediente (record).
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { for (Mail mail : OKMMail.getInstance().getChildren(null, "/okm:root/test")) { System.out.println(mail); } } catch (Exception e) { e.printStackTrace(); } }}isValid
Sección titulada «isValid»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| isValid(String token, String mailId) | boolean | Devuelve un valor booleano que indica si el nodo es un correo o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { try { boolean valid = OKMMail.getInstance().isValid(null, "064ff51a-b815-4f48-a096-b4946876784f"); System.out.println(valid); } catch (Exception e) { e.printStackTrace(); } }}getPath
Sección titulada «getPath»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getPath(String token, String uuid) | String | Convierte el UUID de una carpeta en la ruta de un correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { try { String path = OKMMail.getInstance().getPath(null, "064ff51a-b815-4f48-a096-b4946876784f"); System.out.println(path); } catch (Exception e) { e.printStackTrace(); } }}sendMail
Sección titulada «sendMail»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| sendMail(String token, List |
void | Envía un correo. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { try { StringBuffer body = new StringBuffer(); body.append("Test message body."); List<String> recipients = new ArrayList<>(); recipients.add("some@mail.com"); OKMMail.getInstance().sendMail(null, recipients, "Testing sending mail from OpenKM", body.toString()); } catch (Exception e) { e.printStackTrace(); } }}setTitle
Sección titulada «setTitle»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setTitle(String token, String mailId, String title) | void | Establece el título del correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;
public class Test { public static void main(String[] args) { try { OKMMail.getInstance().setTitle(null, "064ff51a-b815-4f48-a096-b4946876784", "new title"); } catch (Exception e) { e.printStackTrace(); } }}sendMailWithAttachments
Sección titulada «sendMailWithAttachments»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| sendMailWithAttachments(String token, List |
Envía un mensaje de correo con adjuntos. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio una vez enviado.
- Otros parámetros:
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.List;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { List<String> toRecipients = Arrays.asList("destination@mail.com"); List<String> docsId = Arrays.asList("f123a950-0329-4d62-8328-0ff500fd42db","/okm:root/logo.png"); Mail mail = OKMMail.getInstance().sendMailWithAttachments(null, toRecipients, "some subject", "some body", docsId, "/okm:root/tmp"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}sendMailWithAttachments
Sección titulada «sendMailWithAttachments»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| sendMailWithAttachments(String token, List String body, List |
Envía un mensaje de correo con adjuntos. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio una vez enviado.
- Otros parámetros:
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.List;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { List<String> toRecipients = Arrays.asList("destination@mail.com"); List<String> ccRecipients = new ArrayList<>(); List<String> bccRecipients = new ArrayList<>(); List<String> docsId = Arrays.asList("f123a950-0329-4d62-8328-0ff500fd42db","/okm:root/logo.png"); Mail mail = OKMMail.getInstance().sendMailWithAttachments(null, toRecipients, ccRecipients, bccRecipients, "some subject", "some body", docsId, "/okm:root/tmp"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}sendMailWithAttachments
Sección titulada «sendMailWithAttachments»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| sendMailWithAttachments(String token, List List |
Envía un mensaje de correo con adjuntos. |
- Los valores del parámetro dstId deben ser el UUID o la ruta de una carpeta o de un expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio una vez enviado.
- Otros parámetros:
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.List;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { try { List<String> toRecipients = Arrays.asList("destination@mail.com"); List<String> ccRecipients = new ArrayList<>(); List<String> bccRecipients = new ArrayList<>(); List<String> replyToMails = new ArrayList<>(); List<String> docsId = Arrays.asList("f123a950-0329-4d62-8328-0ff500fd42db","/okm:root/logo.png"); Mail mail = OKMMail.getInstance().sendMailWithAttachments(null, toRecipients, ccRecipients, bccRecipients, replyToMails, "some subject", "some body", docsId, "/okm:root/tmp"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}importEml
Sección titulada «importEml»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| importEml(String path, String title, InputStream is) | Importa un correo en formato EML. |
- Los valores del parámetro path deben ser la ruta de una carpeta o de un expediente. El parámetro path indica dónde se almacenará el correo en el repositorio una vez importado.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/files/test.eml"); Mail mail = OKMMail.getInstance().importEml("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}importMsg
Sección titulada «importMsg»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| importMsg(String path, String title, InputStream is) | Importa un correo en formato MSG. |
- Los valores del parámetro path deben ser la ruta de una carpeta o de un expediente. El parámetro path indica dónde se almacenará el correo en el repositorio una vez importado.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;
public class Test { public static void main(String[] args) { InputStream is = null; try { is = new FileInputStream("/home/files/test.msg"); Mail mail = OKMMail.getInstance().importMsg("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}