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 un UUID de correo válido.
Respecto al parámetro llamado “fldId”, el valor de este parámetro puede ser un UUID de carpeta válido o un nodo de expediente.
También en todos los métodos verá un parámetro llamado “token”. Dado que las tareas cron se ejecutan en segundo plano sin autenticación, los métodos utilizados en este escenario pueden usar el parámetro token. Desde el contexto de ejecución predeterminado de la aplicación debe usar el valor “null”, que indica que la aplicación debe usar la “sesión de usuario”.
Métodos
Sección titulada «Métodos»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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); Mail mail = okmMail.getProperties(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75"); 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); is = new FileInputStream("/home/openkm/sample.pdf"); Document doc = okmMail.createAttachment(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "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 com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.deleteAttachment(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "c98d704f-c9f2-4f75-9923-878300b36b52"); } catch (Exception e) { e.printStackTrace(); } }}getAttachments
Sección titulada «getAttachments»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getAttachments(String token, String mailId) | List |
Devuelve una lista de todos los adjuntos de un correo. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Document;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); for (Document doc : okmMail.getAttachments(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}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.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.delete(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| purge(String token, String mailId) | void | El correo se elimina permanentemente del repositorio. |
- Normalmente purgará correos en /okm:trash/userId (la ubicación de la papelera personal del usuario), pero es posible purgar directamente cualquier correo del repositorio.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.purge(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75"); } 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.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.rename(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "newname"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| move(String token, String mailId, String dstId) | void | Mueve el correo a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.move(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "3636f3bb-779c-4851-b145-0d53e0702b0f"); } catch (Exception e) { e.printStackTrace(); } }}Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| copy(String token, String mailId, String dstId) | void | Copia un correo a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.copy(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "3636f3bb-779c-4851-b145-0d53e0702b0f"); } 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 a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID 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.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.copy(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "3636f3bb-779c-4851-b145-0d53e0702b0f", "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 a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID de una carpeta o de un expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.ExtendedAttributes;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setNotes(true); extAttr.setKeywords(true); extAttr.setCategories(true); extAttr.setPropertyGroups(true); okmMail.extendedCopy(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "3636f3bb-779c-4851-b145-0d53e0702b0f", 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 a una carpeta o expediente. |
- Los valores del parámetro dstId deben ser el UUID 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); ExtendedAttributes extAttr = new ExtendedAttributes(); extAttr.setNotes(true); extAttr.setKeywords(true); extAttr.setCategories(true); extAttr.setPropertyGroups(true); okmMail.extendedCopy(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "3636f3bb-779c-4851-b145-0d53e0702b0f", extAttr, "new_name"); } 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 de todos los correos cuyo padre es fldId. |
- El parámetro fldId puede ser un nodo de carpeta o de expediente.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); for (Mail mail : okmMail.getChildren(null, "3636f3bb-779c-4851-b145-0d53e0702b0f")) { 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 booleano que indica si el nodo es un correo o no. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); boolean valid = okmMail.isValid(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75"); 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); String path = okmMail.getPath(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75"); 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); StringBuffer body = new StringBuffer(); body.append("Test message body."); List<String> recipients = new ArrayList<>(); recipients.add("gnu.java.sergio@gmail.com"); okmMail.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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.setTitle(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "new title"); } 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. |
- El valor del parámetro dstId debe ser el UUID de una carpeta o de un expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio después de enviarse.
- 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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); List<String> toRecipients = Arrays.asList("gnujavasergio@mail.com"); List<String> ccRecipients = new ArrayList<>(); List<String> bccRecipients = new ArrayList<>(); List<String> replyToMails = new ArrayList<>(); List<String> docsId = Arrays.asList("b153c4b7-3d1c-4589-bd42-0ed0f34fd338", "d168924d-e801-426d-a222-00124a1461bd");
Mail mail = okmMail.sendMailWithAttachments(null, toRecipients, ccRecipients, bccRecipients, replyToMails, "some subject", "some body", docsId, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}importEml
Sección titulada «importEml»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| importEml(String fldId, String title, InputStream is) | Importa un correo en formato EML. |
- El valor del parámetro fldId debe ser el UUID de una carpeta o de un expediente. El parámetro fldId indica dónde se almacenará el correo en el repositorio después de importarse.
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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); is = new FileInputStream("/home/openkm/sample1.eml"); Mail mail = okmMail.importEml(null, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "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 fldId, String title, InputStream is) | Importa un correo en formato MSG. |
- El valor del parámetro fldId debe ser el UUID de una carpeta o de un expediente. El parámetro fldId indica dónde se almacenará el correo en el repositorio después de importarse.
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;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { InputStream is = null; try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); is = new FileInputStream("/home/openkm/test subject.msg"); Mail mail = okmMail.importMsg(null, "b67fe3ae-bcca-4947-b8ea-0cc7aedd4474", "some title", is); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(is); } }}setNodeClass
Sección titulada «setNodeClass»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setNodeClass(String token, String uuid, long ncId) | void | Establece la NodeClass. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); long ncId = 2; okmMail.setNodeClass(null, "7ce1b4a8-4ade-4dce-8d7d-4e99a6cd368b", ncId); } catch (Exception e) { e.printStackTrace(); } }}setDispositionStage
Sección titulada «setDispositionStage»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDispositionStage(String token, String uuid, long stage) | void | Establece la etapa de disposición |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); long stage = 1; okmMail.setDispositionStage(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", stage); } catch (Exception e) { e.printStackTrace(); } }}setDescription
Sección titulada «setDescription»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| setDescription(String token, String uuid, String description) | void | Establece la descripción. |
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.bean.Mail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); okmMail.setDescription(null, "0747c0cb-5e4a-4088-92a9-ab97b401af75", "some description"); Mail mail = okmMail.getProperties(null, "b0747c0cb-5e4a-4088-92a9-ab97b401af75"); System.out.println(mail); } catch (Exception e) { e.printStackTrace(); } }}getContent
Sección titulada «getContent»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getContent(String token, String mailId) | InputStream | Recupera el contenido del correo (datos binarios). |
Ejemplo:
package com.openkm;
import java.io.FileOutputStream;import java.io.InputStream;import java.io.OutputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); OutputStream fos = new FileOutputStream("/home/openkm/test.eml"); InputStream is = okmMail.getContent(null, "b405a504-d8cb-4166-ac51-22f68acee8c5"); IOUtils.copy(is, fos); IOUtils.closeQuietly(is); IOUtils.closeQuietly(fos); } catch (Exception e) { e.printStackTrace(); } }}createWizard
Sección titulada «createWizard»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| createWizard(String token, String path, String title, InputStream is, String type) | WizardNode | Crea un nuevo correo electrónico con un asistente. |
- El parámetro path debe ser cualquier RUTA válida de una carpeta o de un expediente.
- Tipos disponibles:
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;import com.openkm.bean.WizardNode;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); InputStream is = new FileInputStream("/home/openkm/sample2.eml"); WizardNode wn = okmMail.createWizard(null, "/okm:root/test", "test title", is, Mail.ORIGIN_EML); System.out.print(wn); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}getExtractedText
Sección titulada «getExtractedText»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| getExtractedText(String token, String uuid) | String | Devuelve una cadena con el texto extraído por el proceso de extracción de texto. |
- Cuando se sube un documento a OpenKM, este pasa a la cola de extracción de texto. Hay un crontab que procesa periódicamente esta cola y extrae el contenido de los documentos.
Ejemplo:
package com.openkm;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); String text = okmMail.getExtractedText(null, "46762f90-82c6-4886-8d21-ad3017dd78a7"); System.out.println(text); } catch (Exception e) { e.printStackTrace(); } }}forwardEmail
Sección titulada «forwardEmail»Descripción:
| Método | Valores devueltos | Descripción |
|---|---|---|
| forwardEmail(String token, String uuid, List |
void | Reenvía un correo electrónico a una lista de usuarios, roles o direcciones de correo externas. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.api.OKMMail;import com.openkm.util.ContextWrapper;
public class Test {
public static void main(String[] args) { try { OKMMail okmMail = ContextWrapper.getContext().getBean(OKMMail.class); String mailUuid = "f123a950-0329-4d62-8328-0ff500fd42db"; List<String> users = new ArrayList<>(); users.add("userTest"); List<String> roles = new ArrayList<>(); roles.add("ROLE_USER"); List<String> mails = new ArrayList<>(); mails.add("test@none.com");
okmMail.forwardEmail(null, mailUuid, users, roles, mails, "Any message"); } catch (Exception e) { e.printStackTrace(); } }}