Como enviar un email
SendEmailRequest req = new SendEmailRequest();
req.EmailId = mail.activityid.Value;
req.TrackingToken = "";
req.IssueSend = true;
SendEmailResponse res = (SendEmailResponse)crmService.Execute(req);
Enviar un email utilizando una plantilla
//Declaracion del email
email mail = new email();
contact contacto = new contact();
//Asignacion del from y el to
//Propietario del contacto
activityparty from = new activityparty();
from.partyid = new Lookup();
from.partyid.Value = new Guid(encargado.systemuserid.Value.ToString());
from.partyid.type = EntityName.systemuser.ToString();
mail.from = new activityparty[] { from };
activityparty to = new activityparty();
to.partyid = new Lookup();
//Contacto creado
to.partyid.Value = new Guid(contacto.contactid.Value.ToString());
to.partyid.type = EntityName.contact.ToString();
mail.to = new activityparty[] { to };
//Busqueda de la plantilla adecuada
email cuerpoMail = new email();
//Hace falta esto para instanciar la plantilla que se busca
InstantiateTemplateRequest cuerpo = new InstantiateTemplateRequest();
//Template cuerpo : evento presencial
cuerpo.ObjectId = ((Key)usuarioDinamico.Properties["systemuserid"]).Value;
cuerpo.ObjectType = EntityName.systemuser.ToString();
QueryByAttribute queryCuerpo = new QueryByAttribute();
ColumnSet colsPlantilla = new ColumnSet();
colsPlantilla.AddColumn("body");
colsPlantilla.AddColumn("subject");
queryCuerpo.ColumnSet = colsPlantilla;
queryCuerpo.EntityName = EntityName.template.ToString();
queryCuerpo.Attributes = new string[] { "title" };
queryCuerpo.Values = new object[] { "Mi plantilla" };
BusinessEntityCollection retrievedTemplate = crmService.RetrieveMultiple(queryCuerpo);
if (retrievedTemplate.BusinessEntities.Length > 0) {
cuerpo.TemplateId = ((template)retrievedTemplate.BusinessEntities[0]).templateid.Value;
mail.description = ((email)cuerpoResponse.BusinessEntityCollection.BusinessEntities[0]).description;
mail.subject = ((email)cuerpoResponse.BusinessEntityCollection.BusinessEntities[0]).subject;
//Sustitucion de variables o aplicamos la traducción
cuerpoMail.description = cuerpoMail.description.Replace(NOMBRE_CONTACTO, contacto.firstname);
//Traductor traductor = new Traductor(crmService, metadataService);
//Asignacion del texto al email que voy a enviar
mail.description += cuerpoMail.description;
//mail.description = traductor.Traduce(mail.description, ((Key)nifDinamico.Properties["new_nifid"]).Value, '[', ']');
//creo el mail
Guid mailguid = crmService.Create(mail);
//envió el mail creado
SendEmailRequest req = new SendEmailRequest();
req.EmailId = mailguid;
req.TrackingToken = "";
req.IssueSend = true;
SendEmailResponse res = (SendEmailResponse)crmService.Execute(req);
}
No hay comentarios:
Publicar un comentario