Mail samples
Aspectos básicos
Sección titulada «Aspectos básicos»En casi todos los métodos verá un parámetro llamado “mailId”. El valor de este parámetro puede ser un UUID o una ruta (path) válidos de correo.
Métodos
Sección titulada «Métodos»createMail
Sección titulada «createMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| createMail(Mail mail) | Crea un nuevo correo y devuelve como resultado un objeto Mail. |
La variable path del parámetro mail debe inicializarse. Indica la ruta de la carpeta dentro de OpenKM.
Otras variables obligatorias:
- size (tamaño del correo en bytes).
- from (cuenta de origen del correo).
- reply, to, cc, bcc (cuentas de correo opcionales).
- sendDate (fecha de envío del correo).
- receivedDate (fecha de recepción del correo).
- subject (asunto del correo).
- content (el contenido del correo).
- mimeType (tipo MIME HTML o texto).
- headers (las cabeceras del correo son opcionales).
- raw (el contenido en bruto del correo es opcional).
- origin (origen msg, eml, api, pop3, imap)
- title (título del correo)
Ejemplo:
package com.openkm;
import java.util.Arrays;import java.util.Calendar;
import org.owasp.encoder.Encode;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
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); ws.createMail(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; }}getMailProperties
Sección titulada «getMailProperties»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getMailProperties(String mailId) | Devuelve las propiedades del correo. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getMailProperties("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); } }}deleteMail
Sección titulada «deleteMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| deleteMail(String mailId) | void | Elimina un correo. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.deleteMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}purgeMail
Sección titulada «purgeMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| purgeMail(String mailId) | void | El correo se elimina permanentemente del repositorio. |
Normalmente se purgan correos en /okm:trash/userId - las ubicaciones personales de la papelera de cada usuario - pero es posible purgar directamente cualquier correo del repositorio.
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.purgeMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}renameMail
Sección titulada «renameMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| renameMail(String mailId, String newName) | void | Renombra un correo. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.renameMail("064ff51a-b815-4f48-a096-b4946876784f","new name"); } catch (Exception e) { e.printStackTrace(); } }}moveMail
Sección titulada «moveMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| moveMail(String mailId, String dstId) | void | Mueve un correo a una carpeta o expediente. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente.
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.moveMail("064ff51a-b815-4f48-a096-b4946876784f","/okm:root/tmp"); } catch (Exception e) { e.printStackTrace(); } }}copyMail
Sección titulada «copyMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| public void copyMail(String mailId, String dstId, String newName) | void | Copia un correo a una carpeta o expediente. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente.
Cuando el valor del parámetro newName es null, el correo conserva el mismo nombre.
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.copyMail("064ff51a-b815-4f48-a096-b4946876784f","/okm:root/temp","new_name"); } catch (Exception e) { e.printStackTrace(); } }}extendedMailCopy
Sección titulada «extendedMailCopy»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| extendedMailCopy(String mailId, String dstId, boolean categories, boolean keywords, boolean propertyGroups, boolean notes, boolean wiki, String newName) |
void | Copia un correo junto con los datos asociados a una carpeta o expediente. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente.
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.extendedMailCopy("064ff51a-b815-4f48-a096-b4946876784f", "/okm:root/tmp", true, true, true, true, true, null); } catch (Exception e) { e.printStackTrace(); } }}getMailChildren
Sección titulada «getMailChildren»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getMailChildren(String fldId) | List |
Devuelve una lista de todos los correos cuyo padre es fldId. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (Mail mail : ws.getMailChildren("/okm:root")) { System.out.println(mail); } } catch (Exception e) { e.printStackTrace(); } }}isValidMail
Sección titulada «isValidMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| isValidMail(String mailId) | Boolean | Devuelve un booleano que indica si el nodo es un correo o no. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { // Return false ws.isValidMail("/okm:root/logo.png");
// Return true ws.isValidMail("064ff51a-b815-4f48-a096-b4946876784f"); } catch (Exception e) { e.printStackTrace(); } }}getMailPath
Sección titulada «getMailPath»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getMailPath(String uuid) | String | Convierte el UUID de un correo en su ruta. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { System.out.println(ws.getMailPath("064ff51a-b815-4f48-a096-b4946876784f")); } catch (Exception e) { e.printStackTrace(); } }}createAttachment
Sección titulada «createAttachment»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| createAttachment(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.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/logo.png"); ws.createAttachment("064ff51a-b815-4f48-a096-b4946876784f", "log.png", is); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}deleteAttachment
Sección titulada «deleteAttachment»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| deleteAttachment(String mailId, String docId) | void | Elimina un adjunto de un correo. |
El valor del parámetro docId puede ser un UUID o una ruta (path) válidos de documento.
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { ws.deleteAttachment("064ff51a-b815-4f48-a096-b4946876784f", "f123a950-0329-4d62-8328-0ff500fd42db"); } catch (Exception e) { e.printStackTrace(); } }}getAttachments
Sección titulada «getAttachments»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| getAttachments(String mailId) | List |
Recupera una lista de todos los documentos adjuntos del correo. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Document;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { for (Document doc : ws.getAttachments("064ff51a-b815-4f48-a096-b4946876784f")) { System.out.println(doc); } } catch (Exception e) { e.printStackTrace(); } }}sendMailWithAttachments
Sección titulada «sendMailWithAttachments»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sendMailWithAttachments(List |
void | Envía un mensaje de correo con adjuntos. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio tras enviarse.
Otros parámetros:
- to es una lista de cuentas de correo destinatarias.
- subject es el asunto del correo.
- cc, bcc son una lista de cuentas de correo de destino (opcional)
- docsId es una lista de UUID de documentos válidos ya existentes en OpenKM que se enviarán como adjuntos en el correo (opcional).
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.Arrays;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { List<String> to = Arrays.asList("destination@mail.com"); List<String> cc = new ArrayList<>(); List<String> bcc = new ArrayList<>(); List<String> docsId = Arrays.asList("f123a950-0329-4d62-8328-0ff500fd42db","/okm:root/logo.png"); ws.sendMailWithAttachments(to, cc, bcc, "some subject", "some body", docsId, "/okm:root/tmp"); } catch (Exception e) { e.printStackTrace(); } }}importEml
Sección titulada «importEml»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| importEml(String dstId, String title, InputStream is) | Importa un correo en formato EML. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio tras importarse.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/test.eml"); Mail mail = ws.importEml("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}importMsg
Sección titulada «importMsg»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| importMsg(String dstId, String title, InputStream is) | Importa un correo en formato MSG. |
El valor del parámetro dstId debe ser un UUID o una ruta (path) de carpeta o de expediente. El parámetro dstId indica dónde se almacenará el correo en el repositorio tras enviarse.
Ejemplo:
package com.openkm;
import java.io.FileInputStream;import java.io.InputStream;
import org.apache.commons.io.IOUtils;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;import com.openkm.sdk4j.bean.Mail;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password);
try { InputStream is = new FileInputStream("/home/files/test.msg"); Mail mail = ws.importMsg("d88cff0d-903a-4c5a-82ea-8e6dbd100d65", "some title", is); System.out.println(mail); IOUtils.closeQuietly(is); } catch (Exception e) { e.printStackTrace(); } }}setMailTitle
Sección titulada «setMailTitle»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| setMailTitle(String mailId, String title) | void | Establece el título del correo. |
Ejemplo:
package com.openkm;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { ws.setMailTitle("68ed7a93-005c-4ec6-ac01-bb151573c775", "new title"); } catch (Exception e) { e.printStackTrace(); } }}sendMail
Sección titulada «sendMail»Descripción:
| Método | Valores de retorno | Descripción |
|---|---|---|
| sendMail(List |
void | Envía un correo. |
Ejemplo:
package com.openkm;
import java.util.ArrayList;import java.util.List;
import com.openkm.sdk4j.OKMWebservices;import com.openkm.sdk4j.OKMWebservicesFactory;
public class Test { public static void main(String[] args) { String host = "http://localhost:8080/OpenKM"; String username = "okmAdmin"; String password = "admin"; OKMWebservices ws = OKMWebservicesFactory.newInstance(host, username, password); try { StringBuffer body = new StringBuffer(); body.append("Test message body."); List<String> recipients = new ArrayList<>(); recipients.add("some@mail.com"); ws.sendMail(recipients, "Testing sending mail from OpenKM", body.toString()); } catch (Exception e) { e.printStackTrace(); } }}