Inheritance: FuelSDK.TriggeredSendDefinition
Ejemplo n.º 1
0
        static void TestET_TriggeredSend(){
            ET_Client myclient = new ET_Client();

            Console.WriteLine("--- Testing TriggeredSend ---");
            string TSNameForCreateThenDelete = Guid.NewGuid().ToString();
            string ExistingTSDCustomerKey = "TEXTEXT";

            Console.WriteLine("\n Send Using an Existing Definition ");
            ET_TriggeredSend tsdSend = new ET_TriggeredSend();
            tsdSend.AuthStub = myclient;
            tsdSend.CustomerKey = ExistingTSDCustomerKey;
            tsdSend.Subscribers = new ET_Subscriber[] { new ET_Subscriber() { EmailAddress = "*****@*****.**", SubscriberKey = "*****@*****.**" } };
            SendReturn srSend = tsdSend.Send();
            Console.WriteLine("Send Status: " + srSend.Status.ToString());
            Console.WriteLine("Message: " + srSend.Message.ToString());
            Console.WriteLine("Code: " + srSend.Code.ToString());
            Console.WriteLine("Results Length: " + srSend.Results.Length);

            Console.WriteLine("\n Retrieve All TriggeredSend Definitions");
            ET_TriggeredSend tsdGetAll = new ET_TriggeredSend();
            tsdGetAll.AuthStub = myclient;
            tsdGetAll.Props = new string[] { "CustomerKey", "Name", "TriggeredSendStatus" };
            tsdGetAll.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { TSNameForCreateThenDelete } };
            GetReturn grAllTSD = tsdGetAll.Get();
            Console.WriteLine("Get Status: " + grAllTSD.Status.ToString());
            Console.WriteLine("Message: " + grAllTSD.Message.ToString());
            Console.WriteLine("Code: " + grAllTSD.Code.ToString());
            Console.WriteLine("Results Length: " + grAllTSD.Results.Length);

            foreach (ET_TriggeredSend result in grAllTSD.Results)
            {
                Console.WriteLine("--CustomerKey: " + result.CustomerKey + ", Name: " + result.Name + ", Status: " + result.TriggeredSendStatus.ToString());
            }

            Console.WriteLine("\n Create a TriggeredSend Definition");
            ET_TriggeredSend tsd = new ET_TriggeredSend();
            tsd.AuthStub = myclient;
            tsd.Name = TSNameForCreateThenDelete;
            tsd.CustomerKey = TSNameForCreateThenDelete;
            tsd.Email = new ET_Email() { ID = 3113962 };
            tsd.SendClassification = new ET_SendClassification() { CustomerKey = "2240" };
            PostReturn prTSD = tsd.Post();
            Console.WriteLine("Post Status: " + prTSD.Status.ToString());
            Console.WriteLine("Message: " + prTSD.Message.ToString());
            Console.WriteLine("Code: " + prTSD.Code.ToString());
            Console.WriteLine("Results Length: " + prTSD.Results.Length);

            Console.WriteLine("\n Retrieve Single TriggeredSend");
            ET_TriggeredSend tsdGet = new ET_TriggeredSend();
            tsdGet.AuthStub = myclient;
            tsdGet.Props = new string[] { "CustomerKey", "Name", "TriggeredSendStatus" };
            tsdGet.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new string[] { TSNameForCreateThenDelete } };
            GetReturn tsdGetSingle = tsdGet.Get();
            Console.WriteLine("Get Status: " + tsdGetSingle.Status.ToString());
            Console.WriteLine("Message: " + tsdGetSingle.Message.ToString());
            Console.WriteLine("Code: " + tsdGetSingle.Code.ToString());
            Console.WriteLine("Results Length: " + tsdGetSingle.Results.Length);

            foreach (ET_TriggeredSend result in tsdGetSingle.Results)
            {
                Console.WriteLine("--CustomerKey: " + result.CustomerKey + ", Name: " + result.Name + ", Status: " + result.TriggeredSendStatus.ToString());
            }

            Console.WriteLine("\n Start a TriggeredSend by setting to Active");
            ET_TriggeredSend tsdPatch = new ET_TriggeredSend();
            tsdPatch.AuthStub = myclient;
            tsdPatch.CustomerKey = TSNameForCreateThenDelete;
            tsdPatch.TriggeredSendStatus = TriggeredSendStatusEnum.Active;
            PatchReturn patchrTSD = tsdPatch.Patch();
            Console.WriteLine("Patch Status: " + patchrTSD.Status.ToString());
            Console.WriteLine("Message: " + patchrTSD.Message.ToString());
            Console.WriteLine("Code: " + patchrTSD.Code.ToString());
            Console.WriteLine("Results Length: " + patchrTSD.Results.Length);

            Console.WriteLine("\n  Retrieve Single TriggeredSend After setting to active");
            tsdGetSingle = tsdGet.Get();
            Console.WriteLine("Get Status: " + tsdGetSingle.Status.ToString());
            Console.WriteLine("Message: " + tsdGetSingle.Message.ToString());
            Console.WriteLine("Code: " + tsdGetSingle.Code.ToString());
            Console.WriteLine("Results Length: " + tsdGetSingle.Results.Length);

            foreach (ET_TriggeredSend result in tsdGetSingle.Results)
            {
                Console.WriteLine("--CustomerKey: " + result.CustomerKey + ", Name: " + result.Name + ", Status: " + result.TriggeredSendStatus.ToString());
            }

            Console.WriteLine("\n  Send using new definition");
            ET_TriggeredSend tsdSendNew = new ET_TriggeredSend();
            tsdSendNew.AuthStub = myclient;
            tsdSendNew.CustomerKey = TSNameForCreateThenDelete;
            tsdSendNew.Subscribers = new ET_Subscriber[] { new ET_Subscriber() { EmailAddress = "*****@*****.**", SubscriberKey = "*****@*****.**" } };
            SendReturn srSendnew = tsdSendNew.Send();
            Console.WriteLine("Send Status: " + srSendnew.Status.ToString());
            Console.WriteLine("Message: " + srSendnew.Message.ToString());
            Console.WriteLine("Code: " + srSendnew.Code.ToString());
            Console.WriteLine("Results Length: " + srSendnew.Results.Length);

            Console.WriteLine("\n Pause a TriggeredSend by setting to Inactive");
            tsdPatch.TriggeredSendStatus = TriggeredSendStatusEnum.Inactive;
            patchrTSD = tsdPatch.Patch();
            Console.WriteLine("Patch Status: " + patchrTSD.Status.ToString());
            Console.WriteLine("Message: " + patchrTSD.Message.ToString());
            Console.WriteLine("Code: " + patchrTSD.Code.ToString());
            Console.WriteLine("Results Length: " + patchrTSD.Results.Length);

            Console.WriteLine("\n Delete a TriggeredSend Definition");
            ET_TriggeredSend tsdDelete = new ET_TriggeredSend();
            tsdDelete.AuthStub = myclient;
            tsdDelete.CustomerKey = TSNameForCreateThenDelete;
            DeleteReturn drTSD = tsdDelete.Delete();
            Console.WriteLine("Delete Status: " + drTSD.Status.ToString());
            Console.WriteLine("Message: " + drTSD.Message.ToString());
            Console.WriteLine("Code: " + drTSD.Code.ToString());
            Console.WriteLine("Results Length: " + drTSD.Results.Length);

        }
        public void Send()
        {
            ///////////////////////////////////////////////////////////////////
            //
            // setup the client stub, and add requisite
            // parameters to html body
            //
            ///////////////////////////////////////////////////////////////////

            ET_Client client = CreateClient();
            Body += "\r\nThis email was sent by:\r\n%%Member_Busname%%\r\n%%Member_Addr%%\r\n%%Member_City%%, %%Member_State%%, %%Member_PostalCode%%, %%Member_Country%%";

            ///////////////////////////////////////////////////////////////////
            //
            // use emails to setup the list of subscribers
            //
            ///////////////////////////////////////////////////////////////////

            List<ET_Subscriber> subscribers = new List<ET_Subscriber>();

            foreach (string recipient in To)
            {
                ET_Subscriber subscriber = new ET_Subscriber();
                subscriber.EmailAddress = recipient;
                subscriber.SubscriberKey = recipient;

                subscribers.Add(subscriber);
            }

            ///////////////////////////////////////////////////////////////////
            //
            // create email within ExactTarget email list
            //
            ///////////////////////////////////////////////////////////////////

            ET_Email email = new ET_Email();
            email.AuthStub = client;
            email.Name = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now);
            email.Subject = Subject;
            email.HTMLBody = Body.Replace("\r\n", "<br>");
            email.TextBody = Regex.Replace(Body, "<.*?>", string.Empty);
            email.EmailType = "html";

            PostReturn results = email.Post();

            ///////////////////////////////////////////////////////////////////
            //
            // create triggered email within ExactTarget triggered email list
            //
            ///////////////////////////////////////////////////////////////////

            ET_TriggeredSend create = new ET_TriggeredSend();
            create.AuthStub = client;
            create.Name = email.Name;
            create.AutoAddSubscribers = true;
            create.AutoAddSubscribersSpecified = true;
            create.List = new ET_List() { ID = 228 };
            create.CustomerKey = Convert.ToString(Guid.NewGuid());
            create.Email = new ET_Email() { ID = results.Results[0].NewID };
            create.SendClassification = new ET_SendClassification() { CustomerKey = "Default Commercial" };

            create.Post();

            ///////////////////////////////////////////////////////////////////
            //
            // patch triggered email (to set active)
            //
            ///////////////////////////////////////////////////////////////////

            ET_TriggeredSend update = new ET_TriggeredSend();
            update.AuthStub = client;
            update.CustomerKey = create.CustomerKey;
            update.TriggeredSendStatus = TriggeredSendStatusEnum.Active;

            update.Patch();

            ///////////////////////////////////////////////////////////////////
            //
            // send triggered email
            //
            ///////////////////////////////////////////////////////////////////

            ET_TriggeredSend send = new ET_TriggeredSend();
            send.AuthStub = client;
            send.CustomerKey = update.CustomerKey;
            send.Subscribers = subscribers.ToArray();

            send.Send();
        }
Ejemplo n.º 3
0
        public string CreateTriggeredSendDefinition(string name, string customerKey, string description, string subject, string htmlBody)
        {
            try
            {
                DeleteSendClassification(customerKey);

                string emailCustomerKey = CreateEmail(name, customerKey, description, subject, htmlBody);

                //var sp = RetrieveSendProfile();
                //var dp = RetrieveDeliveryProfile();

                ET_SendClassification sendClassification = new ET_SendClassification();

                sendClassification.Name                            = name;
                sendClassification.CustomerKey                     = customerKey;
                sendClassification.SendClassificationType          = SendClassificationTypeEnum.Marketing;
                sendClassification.SendClassificationTypeSpecified = true;

                sendClassification.SenderProfile = new ET_SenderProfile()
                {
                    CustomerKey = "Default"
                };
                sendClassification.DeliveryProfile = new ET_DeliveryProfile()
                {
                    CustomerKey = "Default"
                };

                sendClassification.AuthStub = _etClient;
                PostReturn status = sendClassification.Post();

                string sendDefinitionCustomerKey = Guid.NewGuid().ToString();

                FuelSDK.ET_TriggeredSend postEmailSendDef = new FuelSDK.ET_TriggeredSend();
                postEmailSendDef.AuthStub    = _etClient;
                postEmailSendDef.Name        = name;
                postEmailSendDef.CustomerKey = sendDefinitionCustomerKey;
                postEmailSendDef.Description = description;

                postEmailSendDef.SendClassification  = (SendClassification)sendClassification; // new ET_SendClassification() { CustomerKey = sendClassification.CustomerKey };
                postEmailSendDef.TriggeredSendStatus = TriggeredSendStatusEnum.Active;

                FuelSDK.ET_Email email = new FuelSDK.ET_Email();
                email.Name        = name;
                email.AuthStub    = _etClient;
                email.CustomerKey = emailCustomerKey;

                postEmailSendDef.Email = email;

                PostReturn postResponse = postEmailSendDef.Post();

                if (postResponse.Status)
                {
                    return(sendDefinitionCustomerKey);
                }
                else
                {
                    return(string.Empty);
                }

                //return
                //    new PostReturnStatus()
                //    {
                //        Status = postResponse.Status.ToString(),
                //        Message = postResponse.Message.ToString(),
                //        Code = postResponse.Code.ToString(),
                //        ResultsLength = postResponse.Results.Length
                //};
            }
            catch (Exception ex)
            {
                throw;
            }
        }