Artículos sobre: APIs y Webservices

Cloud SMTP - Activación de Conversaciones vía Cloud 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), DKIM ( DomainKeys Identified Mail ) y DMARC ( Domain-based Message Authentication, Reporting & Conformance ) 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.


Información para configuración técnica de la conexión:


Host: cloudsmtp.danaconnect.com
Puerto: 587
Credenciales: Son usadas las mismas credenciales del sistema de autenticación DANAconnect: login@idcompany y password
TLS para conectarse: Sí, obligatorio

Limitaciones del servidor DANAconnect Cloud SMTP: Cantidad máxima de archivos adjuntos: 3 / Cantidad máxima de destinatarios: 10 / Tamaño máximo de un archive adjunto: 5MB

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 = "cloudsmtp.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 = "cloudsmtp.danaconnect.com";
$mail->SMTPAuth = true;
$mail->Username = "login@idcompany";
$mail->Password = "XXXXX";
$mail->Port = 587;
$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", "cloudsmtp.danaconnect.com");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.port", 587);
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", "cloudsmtp.danaconnect.com");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.port", 587);
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);
}
}
}

Actualizado el: 26/01/2024

¿Este artículo te resultó útil?

Comparte tu opinión

Cancelar

¡Gracias!