private static void SendMail(TriggeredSendDataModel triggerData, List <SubscriberDataModel> subscriberlist, IExactTargetConfiguration config) { var emailTrigger = new EmailTrigger(config); var lst = GetSubscriberList(subscriberlist, triggerData); emailTrigger.TriggerCustom(triggerData, lst); }
private static void SendUsingPreDefinedKeys(TriggeredSendDataModel TriggerData, List <SubscriberDataModel> Subscriberlist) { if (!CheckIsExists(TriggerData)) { throw new Exception("Dependent object not Exists"); } StartTriggerSend(TriggerData); SendMail(TriggerData, Subscriberlist, config); }
static void Main(string[] args) { config = GetConfig(); GetClient(config); TriggeredSendDataModel Mdl = new TriggeredSendDataModel() { DataExtensionExternalKey = "RIBEventTest", FromEmail = "*****@*****.**", FromName = "Master Tester", EmailExternalKey = "RIB_Events", // email name, id, customer key. // EmailTemplateExternalKey = "RIB_Events", //template name ,val TriggerSendDefinitionExternalKey = "RIB_EventsNew", // CcEmails = "*****@*****.**", isCcNeed = true, isBccNeed = true }; // List <SubscriberDataModel> Subscriberlist = new List <SubscriberDataModel>(); var rep = new List <KeyValuePair <string, string> >(); rep.Add(new KeyValuePair <string, string>("name", "Sameer")); rep.Add(new KeyValuePair <string, string>("email_subject", "Test")); rep.Add(new KeyValuePair <string, string>("event_markup", "test Mark up")); rep.Add(new KeyValuePair <string, string>("date", DateTime.Now.ToString())); rep.Add(new KeyValuePair <string, string>("First_Name", "Sameer")); rep.Add(new KeyValuePair <string, string>("html_markup", "Test")); rep.Add(new KeyValuePair <string, string>("view_email_url", "Test")); rep.Add(new KeyValuePair <string, string>("insert date", "Test")); rep.Add(new KeyValuePair <string, string>("manage_url", "Test")); rep.Add(new KeyValuePair <string, string>("CCAddress", "[email protected];[email protected]")); // rep.Add(new KeyValuePair<string, string>("BCCAddress", "*****@*****.**")); Subscriberlist.Add(new SubscriberDataModel() { SubscriberEmail = "*****@*****.**", SubscriberKey = "*****@*****.**", ReplacementValues = rep }); SendUsingPreDefinedKeys(Mdl, Subscriberlist); Console.WriteLine("Done"); Console.ReadKey(); TrackingEventData(Utlities.TrackingEvent.BounceEvent, Convert.ToDateTime("12/19/2017"), "2989c88b-2ae0-e711-b454-00110a67f325"); TrackingEventData(Utlities.TrackingEvent.SentEvent, Convert.ToDateTime("12/19/2017"), "2989c88b-2ae0-e711-b454-00110a67f325"); }
private static void StartTriggerSend(TriggeredSendDataModel TriggerData) { try { var TS = _SharedClent.RetrieveObject <TriggeredSendDefinition>("CustomerKey", TriggerData.TriggerSendDefinitionExternalKey, "TriggeredSendDefinition"); if (TS != null) { if (TS.TriggeredSendStatus != TriggeredSendStatusEnum.Active) { triggeredSendDefinitionClient.StartTriggeredSend(TS.CustomerKey); } } } catch (Exception) { } }
private static bool CheckIsExists(TriggeredSendDataModel TriggerData) { if (TriggerData != null) { // var isEmailTemplateExternalKey = _SharedClent.DoesObjectExist("CustomerKey", TriggerData.EmailTemplateExternalKey, "Template"); var isDataExtension = _SharedClent.DoesObjectExist("CustomerKey", TriggerData.DataExtensionExternalKey, "DataExtension"); var isTriggeredSendDefinition = _SharedClent.DoesObjectExist("CustomerKey", TriggerData.TriggerSendDefinitionExternalKey, "TriggeredSendDefinition"); var isTriggeredSendDefiniObjIDtion = _SharedClent.RetrieveObjectId("CustomerKey", TriggerData.TriggerSendDefinitionExternalKey, "TriggeredSendDefinition"); var isEmail = _SharedClent.DoesObjectExist("Name", TriggerData.EmailExternalKey, "Email"); string EmailID; int ID = 0; if (isEmail) { EmailID = _SharedClent.RetrieveObjectId("Name", TriggerData.EmailExternalKey, "Email"); ID = Convert.ToInt32(EmailID); } if (!isEmail || !isDataExtension) { return(false); } if (!isTriggeredSendDefinition) { var dpkey = ConfigurationManager.AppSettings["DP"].ToString(); _deliveryProfileClient.TryCreateBlankDeliveryProfile(dpkey); triggeredSendDefinitionClient.CreateTriggeredSendDefinition( TriggerData.TriggerSendDefinitionExternalKey, ID, TriggerData.DataExtensionExternalKey, dpkey, TriggerData.TriggerSendDefinitionExternalKey, "", TriggerData.isCcNeed, TriggerData.isBccNeed ); return(true); } return(true); } return(false); }
public void TriggerCustom(TriggeredSendDataModel exactTargetTriggeredEmail, List <Subscriber> lst, RequestQueueing requestQueueing = RequestQueueing.No, Utlities.Priority priority = Utlities.Priority.Normal) { var clientId = _config.ClientId; var client = SoapClientFactory.Manufacture(_config); var tsd = new TriggeredSendDefinition { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, CustomerKey = exactTargetTriggeredEmail.TriggerSendDefinitionExternalKey, }; var ts = new TriggeredSend { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, TriggeredSendDefinition = tsd, Subscribers = lst.ToArray(), }; var co = new CreateOptions { RequestType = requestQueueing == RequestQueueing.No ? RequestType.Synchronous : RequestType.Asynchronous, RequestTypeSpecified = true, QueuePriority = priority == Utlities.Priority.High ? ETService.Priority.High : ETService.Priority.Medium, QueuePrioritySpecified = true }; string requestId, status; var result = client.Create( co, new APIObject[] { ts }, out requestId, out status); ExactTargetResultChecker.CheckResult(result.FirstOrDefault()); //we expect only one result because we've sent only one APIObject }
private static List <Subscriber> GetSubscriberList(List <SubscriberDataModel> subscriberlist, TriggeredSendDataModel triggerData) { List <Subscriber> lst = new List <Subscriber>(); if (subscriberlist != null) { foreach (var sub in subscriberlist) { var subscriber = new Subscriber { Addresses = new SubscriberAddress[] { new SubscriberAddress() { Address = "", AddressType = "" } }, EmailAddress = sub.SubscriberEmail, SubscriberKey = sub.SubscriberKey ?? sub.SubscriberEmail, Attributes = sub.ReplacementValues.Select(value => new ETService.Attribute { Name = value.Key, Value = value.Value }).ToArray() }; subscriber.Owner = new Owner() { FromAddress = sub.FromEmail ?? triggerData.FromEmail, FromName = sub.FromName ?? triggerData.FromName, }; lst.Add(subscriber); } } return(lst); }