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; } }
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_Email(){ ET_Client myclient = new ET_Client(); string NameOfTestEmail = "CSharpSDKEmail"; Console.WriteLine("--- Testing Email ---"); Console.WriteLine("\n Retrieve All Email with GetMoreResults"); ET_Email getAllEmail = new ET_Email(); getAllEmail.AuthStub = myclient; getAllEmail.Props = new string[] { "ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey" }; GetReturn grAllEmail = getAllEmail.Get(); Console.WriteLine("Get Status: " + grAllEmail.Status.ToString()); Console.WriteLine("Message: " + grAllEmail.Message.ToString()); Console.WriteLine("Code: " + grAllEmail.Code.ToString()); Console.WriteLine("Results Length: " + grAllEmail.Results.Length); while (grAllEmail.MoreResults) { Console.WriteLine("\n Continue Retrieve All Email with GetMoreResults"); grAllEmail = getAllEmail.GetMoreResults(); Console.WriteLine("Get Status: " + grAllEmail.Status.ToString()); Console.WriteLine("Message: " + grAllEmail.Message.ToString()); Console.WriteLine("Code: " + grAllEmail.Code.ToString()); Console.WriteLine("Results Length: " + grAllEmail.Results.Length); } Console.WriteLine("\n Create Email"); ET_Email postEmail = new ET_Email(); postEmail.AuthStub = myclient; postEmail.Name = NameOfTestEmail; postEmail.CustomerKey = NameOfTestEmail; postEmail.Subject = "Created Using the Fuel SDK"; postEmail.HTMLBody = "<b>Some HTML Goes here</b>"; PostReturn postResponse = postEmail.Post(); Console.WriteLine("Post Status: " + postResponse.Status.ToString()); Console.WriteLine("Message: " + postResponse.Message.ToString()); Console.WriteLine("Code: " + postResponse.Code.ToString()); Console.WriteLine("Results Length: " + postResponse.Results.Length); if (postResponse.Status) { Console.WriteLine("\n Retrieve newly create Email"); ET_Email getEmail = new ET_Email(); getEmail.AuthStub = myclient; getEmail.Props = new string[] { "ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey" }; getEmail.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new String[] { NameOfTestEmail } }; GetReturn getResponse = getEmail.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Email ResultEmail in getResponse.Results) { Console.WriteLine("--ID: " + ResultEmail.ID + ", Name: " + ResultEmail.Name + ", HTMLBody: " + ResultEmail.HTMLBody); } Console.WriteLine("\n Update Email"); ET_Email patchEmail = new ET_Email(); patchEmail.CustomerKey = NameOfTestEmail; patchEmail.HTMLBody = "<b>Some HTML Goes here. NOW WITH NEW CONTENT</b>"; patchEmail.AuthStub = myclient; FuelSDK.PatchReturn patchFR = patchEmail.Patch(); Console.WriteLine("Patch Status: " + patchFR.Status.ToString()); Console.WriteLine("Message: " + patchFR.Message.ToString()); Console.WriteLine("Code: " + patchFR.Code.ToString()); Console.WriteLine("Results Length: " + patchFR.Results.Length); Console.WriteLine("\n Retrieve updated Email"); getEmail.Props = new string[] { "ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey" }; getEmail.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new String[] { NameOfTestEmail } }; getResponse = getEmail.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); foreach (ET_Email ResultEmail in getResponse.Results) { Console.WriteLine("--ID: " + ResultEmail.ID + ", Name: " + ResultEmail.Name + ", HTMLBody: " + ResultEmail.HTMLBody); } Console.WriteLine("\n Delete Email"); ET_Email delEmail = new ET_Email(); delEmail.CustomerKey = NameOfTestEmail; delEmail.AuthStub = myclient; DeleteReturn deleteResponse = delEmail.Delete(); Console.WriteLine("Delete Status: " + deleteResponse.Status.ToString()); Console.WriteLine("Message: " + deleteResponse.Message.ToString()); Console.WriteLine("Code: " + deleteResponse.Code.ToString()); Console.WriteLine("Results Length: " + deleteResponse.Results.Length); Console.WriteLine("\n Retrieve Email to confirm deletion"); getEmail.Props = new string[] { "ID","PartnerKey","CreatedDate","ModifiedDate","Client.ID","Name","Folder","CategoryID","HTMLBody","TextBody","Subject","IsActive","IsHTMLPaste","ClonedFromID","Status","EmailType","CharacterSet","HasDynamicSubjectLine","ContentCheckStatus","Client.PartnerClientKey","ContentAreas","CustomerKey" }; getEmail.SearchFilter = new SimpleFilterPart() { Property = "CustomerKey", SimpleOperator = SimpleOperators.equals, Value = new String[] { NameOfTestEmail } }; getResponse = getEmail.Get(); Console.WriteLine("Get Status: " + getResponse.Status.ToString()); Console.WriteLine("Message: " + getResponse.Message.ToString()); Console.WriteLine("Code: " + getResponse.Code.ToString()); Console.WriteLine("Results Length: " + getResponse.Results.Length); Console.WriteLine("\n Info Email"); ET_Email EmailInfo = new ET_Email(); EmailInfo.AuthStub = myclient; InfoReturn info = EmailInfo.Info(); Console.WriteLine("Info Status: " + info.Status.ToString()); Console.WriteLine("Message: " + info.Message.ToString()); Console.WriteLine("Code: " + info.Code.ToString()); Console.WriteLine("Results Length: " + info.Results.Length); foreach (ET_PropertyDefinition def in info.Results) { Console.WriteLine("--Name: " + def.Name + ", IsRetrievable: " + def.IsRetrievable.ToString()); } } }