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(); }
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); }