Nombre de la Categoría: > APIs y Webservices

SMTP – Activación de Conversaciones vía SMTP

La Activación de Conversaciones vía SMTP es un servicio SMTP que permite iniciar una conversación desde un email enviando una línea de comandos en el cuerpo del correo.

Se utiliza este servicio para iniciar flujos de comunicación (conversaciones) que han sido previamente diseñados en la plataforma DANAConnect y se envía en el cuerpo del correo una línea de comando en texto plano que incluye los campos de la lista de contactos (BD) asociada a dicha conversación, con sus respectivos valores.


Pre-requisitos para utilizar la interfaz de Activación de Conversaciones vía SMTP:

  • Cuenta en DANAConnect con usuario que posea acceso al envío de comunicaciones.
  • Verificación y autorización de los remitentes a utilizar desde la herramienta web.
  • Configuración del Sender Policy Framework (SPF) para autorizar a la plataforma DANAConnect a enviar correos en nombre del dominio especificado en el remitente.
  • Este servicio activa Conversaciones se hayan creado previamente y que estén activas. Se debe tener el ID de Conversación (conversaciónID) que se puede encontrar en los reportes de la activación de dicha conversación.
  • Es importante tener ubicados los códigos de los campos requeridos para iniciar la conversación.

 

 

Host appserv.danaconnect.com
Puerto 25000
Credenciales Son usadas las mismas credenciales del sistema de autenticación en la plataforma DANAConnect
• login@idcompany
• password
TSL para conectarse Sí, es obligatorio
Autenticación SMTP Authentication
To
Es la dirección a la que se envía el correo que tiene el siguiente formato: idConversation@idcompany.email-platform.com
En donde idConversation es el número de identificación de la conversación DANAConnect que se desea activar y IDcompany es el identificador de su compañía en la plataforma DANAConnect
From  Es el remitente del correo que tiene que estar previamente agregado en la lista de remitentes autorizados en la plataforma DANAConnect
Timeout Tiempo de apertura de la conexión en segundos
Subject Título del correo
Body El cuerpo del correo debe contener únicamente el comando que se va a enviar para iniciar la conversación concatenando los parámetros que corresponden a los campos de la BD asociados a dicha conversación. El cuerpo del correo no debe incluir ninguna firma o ningún otro texto adicional aparte de la línea de comando.

La línea de comando del cuerpo tiene uno de los siguientes formatos para dos casos de uso (ver tipos de comando más abajo para mayor info):

  1. command=StartConversationWithData&Campo1=ValorCampo1&Campo2=ValorCampo2
  2. command=StartConversation&idContact=1

 

Autenticación:

Credenciales:

  • Login : consiste en el nombre de usuario de DANAConnect concatenado con un @ y seguido del código de la compañía (IDCompany) en DANAConnect.
  • Password : es el que corresponde a ese usuario en DANAConnect

 

Ejemplo:

  • Nombre de usuario en DANAConnect: jperez
  • Código de compañía: loremipsumcompany
  • Login para el servicio: jperez@loremipsumcompany

Destinatario del email (To):

El destinatario del email que se envía con Command Start Conversation se utiliza para iniciar una conversación en DANAConnect, por lo que incluye el identificador de esa conversación y el identificador de la cuenta de su compañía (idCompany) en la plataforma. El formato de la dirección de correo electrónico que se debe utilizar es el siguiente: idconversation@idcompany.email-platform.com

Ejemplo: 214777@loremipsumcompany.email-platform.com

  • idConversation: 214777
  • Código de compañía (subdominio): loremipsumcompany
  • dominio destinatario: email-platform.com

Número de identificación de la conversación (idConversation): El número de identificación de la conversación en DANAConnect se puede encontrar en la página de reportes de la activación.


Correspondencia de los parámetros con un email convencional:

 


Tipos de líneas de Comando:

Hay dos tipos de comandos para iniciar una conversación con este servicio según sea la necesidad en relación al caso de negocio:

  • Command Start Conversation with Data
  • Command Start Conversation by ID

Command Start Conversation with Data:

Se utiliza para iniciar una conversación enviando diferentes parámetros que se corresponden con los campos de la lista de contactos que esta asociada a esta conversación. El formato de la línea de comando para este caso es el siguiente:

command=StartConversationWithData&Campo1=ValorCampo1&Campo2=ValorCampo2

 

Ejemplo: command=StartConversationWithData&nombre=pedro&apellido=perez&email=pperez@gnail.com&ecelular=+50712345678

IMPORTANTE!: el cuerpo (body) del email no debe contener nada más que el texto de la línea de comando. No deben incluirse ninguna firma ni ningún otro texto en el contenido del correo.

 


Command Start Conversation by ID:

Se utiliza para iniciar una conversación enviando solamente el identificador único que se corresponde con un registro de la lista de contactos al cual queremos activar dicha conversación:

command=StartConversation&idContact=UID

 

Ejemplo: command=StartConversation&idContact=11

IMPORTANTE!: el cuerpo (body) del email no debe contener nada más que el texto de la línea de comando. No deben incluirse ninguna firma ni ningún otro texto en el contenido del correo.


Ejemplos para la conexión:

Ejemplo de Command Start Conversation with Data usando PHPMailer:

<?php
include "PHPMailer.php";
include "SMTP.php";
include "Exception.php";
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPSecure = 'tls';
$mail->Host = "appserv.danaconnect.com";
$mail->SMTPAuth = true;
$mail->Username = "login@idcompany";
$mail->Password = "XXXXX";
$mail->Port = 25000;
$mail->From = "ejemplo@sudominio.com";
$mail->Timeout=10;
$mail->AddAddress("IDconversation@idcompany.email-platform.com");
$mail->Subject = "Test startConversationWithData";
$mail->Body = "command=StartConversationWithData&Nombre=Juan&Apellido=Lopez&Telefono=+5141234567";

if ($mail->Send())
{
echo "Message sent";
}else
{
echo "Mailer Error: ". $mail->ErrorInfo;
}
?>


Ejemplo de Command Start Conversation by ID usando PHPMailer:

<?php
include "PHPMailer.php";
include "SMTP.php";
include "Exception.php";
use PHPMailer\PHPMailer\PHPMailer;
$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPSecure = 'tls';
$mail->Host = "appserv.danaconnect.com";
$mail->SMTPAuth = true;
$mail->Username = "login@idcompany";
$mail->Password = "XXXXX";
$mail->Port = 25000;
$mail->From = "ejemplo@sudominio.com";
$mail->Timeout=10;
$mail->AddAddress("IDconversation@idcompany.email-platform.com");
$mail->Subject = "Test start Conversation by ID";
$mail->Body = "command=StartConversation&IDContact=11";

if ($mail->Send())
{
echo "Message sent";
}else
{
echo "Mailer Error: ". $mail->ErrorInfo;
}
?>


Ejemplo de Command Start Conversation with Data usando Java:

import java.io.UnsupportedEncodingException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
*
* @author DANAConnect
*/
public class EjemploSMTPStartConversation {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Properties properties = new Properties();
Session session;

properties.put("mail.smtp.host", "appserv.danaconnect.com");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.port", 25000);
properties.put("mail.smtp.mail.sender", "ejemplo@sudominio.com");
properties.put("mail.smtp.user", "login@idcompany");
properties.put("mail.smtp.auth", "true");

session = Session.getDefaultInstance(properties);

try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress((String) properties.get("mail.smtp.mail.sender"), "Test startConversationWithData"));

message.addRecipient(Message.RecipientType.TO, new InternetAddress("@.email-platform.com"));
message.setSubject("Test startConversationWithData");
message.setText("command=StartConversationWithData&Nombre=Juan&Apellido=Lopez&Telefono=+5141234567");

Transport t = session.getTransport("smtp");
t.connect((String) properties.get("mail.smtp.user"), "XXXXX"); //Clave portal DANA
t.sendMessage(message, message.getAllRecipients());
t.close();
} catch (MessagingException me) {
Logger.getLogger(TestSMTP.class.getName()).log(Level.SEVERE, null, me);

} catch (UnsupportedEncodingException ex) {
Logger.getLogger(EjemploSMTPStartConversation.class.getName()).log(Level.SEVERE, null, ex);
}

}

}


Ejemplo de Command Start Conversation by ID usando Java:

import java.io.UnsupportedEncodingException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
*
* @author DANAConnect
*/
public class EjemploSMTPStartConversation {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Properties properties = new Properties();
Session session;

properties.put("mail.smtp.host", "appserv.danaconnect.com");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.port", 25000);
properties.put("mail.smtp.mail.sender", "ejemplo@sudominio.com");
properties.put("mail.smtp.user", "login@idcompany");
properties.put("mail.smtp.auth", "true");

session = Session.getDefaultInstance(properties);

try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress((String) properties.get("mail.smtp.mail.sender"), "Test start Conversation by ID"));

message.addRecipient(Message.RecipientType.TO, new InternetAddress("@.email-platform.com"));
message.setSubject("Test startConversationWithData");
message.setText("command=StartConversation&idContact=11");

Transport t = session.getTransport("smtp");
t.connect((String) properties.get("mail.smtp.user"), "XXXXX"); //Clave portal DANA
t.sendMessage(message, message.getAllRecipients());
t.close();
} catch (MessagingException me) {
Logger.getLogger(TestSMTP.class.getName()).log(Level.SEVERE, null, me);

} catch (UnsupportedEncodingException ex) {
Logger.getLogger(EjemploSMTPStartConversation.class.getName()).log(Level.SEVERE, null, ex);
}

}

}


Ver Tambien:
« | »