Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
 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)
     {
     }
 }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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
        }
Ejemplo n.º 7
0
        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);
        }