public void Trigger(ExactTargetTriggeredEmail exactTargetTriggeredEmail, RequestQueueing requestQueueing = RequestQueueing.No, Priority priority = Priority.Normal) { var clientId = _config.ClientId; var client = SoapClientFactory.Manufacture(_config); var subscriber = new Subscriber { EmailAddress = exactTargetTriggeredEmail.EmailAddress, SubscriberKey = exactTargetTriggeredEmail.SubscriberKey ?? exactTargetTriggeredEmail.EmailAddress, Attributes = exactTargetTriggeredEmail.ReplacementValues.Select(value => new Attribute { Name = value.Key, Value = value.Value }).ToArray() }; // Add sender information if specified. This will send the email with FromAddress in the sender field. // Official doco here under the section "Determining the From Information at Send Time": // https://help.exacttarget.com/en/technical_library/web_service_guide/triggered_email_scenario_guide_for_developers/#Determining_the_From_Information_at_Send_Time if (!string.IsNullOrEmpty(exactTargetTriggeredEmail.FromAddress) && !string.IsNullOrEmpty(exactTargetTriggeredEmail.FromName)) { subscriber.Owner = new Owner() { FromAddress = exactTargetTriggeredEmail.FromAddress, FromName = exactTargetTriggeredEmail.FromName }; } var subscribers = new List<Subscriber> { subscriber }; var tsd = new TriggeredSendDefinition { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, CustomerKey = exactTargetTriggeredEmail.ExternalKey }; var ts = new TriggeredSend { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, TriggeredSendDefinition = tsd, Subscribers = subscribers.ToArray() }; var co = new CreateOptions { RequestType = requestQueueing == RequestQueueing.No ? RequestType.Synchronous : RequestType.Asynchronous, RequestTypeSpecified = true, QueuePriority = priority == Priority.High ? ExactTargetApi.Priority.High : ExactTargetApi.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 void Send(string externalKey) { var triggeredEmail = new ExactTargetTriggeredEmail(externalKey, TestRecipientEmail); triggeredEmail.AddReplacementValue("Subject", "Test email"); triggeredEmail.AddReplacementValue("Body", "<p class='green'>Some test copy in green</p>" + "<p>This is a Templated email without layout.</p>"); var emailTrigger = new EmailTrigger(Config); Assert.DoesNotThrow( () => emailTrigger.Trigger(triggeredEmail), "Failed to send email"); }
private void Send(string externalKey) { var triggeredEmail = new ExactTargetTriggeredEmail(externalKey, TestRecipientEmail); triggeredEmail.AddReplacementValue("Subject", "Test email"); triggeredEmail.AddReplacementValue("FirstName", "John"); triggeredEmail.AddReplacementValue("MyOwnValue", "Some test copy here..."); var emailTrigger = new EmailTrigger(Config); Assert.DoesNotThrow( () => emailTrigger.Trigger(triggeredEmail), "Failed to send email"); }
private static void Send(string externalKey) { var triggeredEmail = new ExactTargetTriggeredEmail(externalKey, "*****@*****.**"); triggeredEmail.AddReplacementValue("Subject","Test email") .AddReplacementValue("Body","<h2>Test email heading</h2><p>Test paragraph</p><p class='red'>This is some text in red</p>") .AddReplacementValue("Head", "<style>.red{color:red}</style>"); var emailTrigger = new EmailTrigger(GetConfig()); emailTrigger.Trigger(triggeredEmail); Console.WriteLine("Triggered external key {0} to {1} successfully", triggeredEmail.ExternalKey, triggeredEmail.EmailAddress); }
public void Trigger(ExactTargetTriggeredEmail exactTargetTriggeredEmail, RequestQueueing requestQueueing = RequestQueueing.No, Priority priority = Priority.Normal) { var clientId = _config.ClientId; var client = SoapClientFactory.Manufacture(_config); var subscriber = new Subscriber { EmailAddress = exactTargetTriggeredEmail.EmailAddress, SubscriberKey = exactTargetTriggeredEmail.SubscriberKey ?? exactTargetTriggeredEmail.EmailAddress, Attributes = exactTargetTriggeredEmail.ReplacementValues.Select(value => new Attribute { Name = value.Key, Value = value.Value }).ToArray() }; // Add sender information if specified. This will send the email with FromAddress in the sender field. // Official doco here under the section "Determining the From Information at Send Time": // https://help.exacttarget.com/en/technical_library/web_service_guide/triggered_email_scenario_guide_for_developers/#Determining_the_From_Information_at_Send_Time if (!string.IsNullOrEmpty(exactTargetTriggeredEmail.FromAddress) && !string.IsNullOrEmpty(exactTargetTriggeredEmail.FromName)) { subscriber.Owner = new Owner() { FromAddress = exactTargetTriggeredEmail.FromAddress, FromName = exactTargetTriggeredEmail.FromName }; } var subscribers = new List <Subscriber> { subscriber }; var tsd = new TriggeredSendDefinition { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, CustomerKey = exactTargetTriggeredEmail.ExternalKey }; var ts = new TriggeredSend { Client = clientId.HasValue ? new ClientID { ID = clientId.Value, IDSpecified = true } : null, TriggeredSendDefinition = tsd, Subscribers = subscribers.ToArray() }; var co = new CreateOptions { RequestType = requestQueueing == RequestQueueing.No ? RequestType.Synchronous : RequestType.Asynchronous, RequestTypeSpecified = true, QueuePriority = priority == Priority.High ? ExactTargetApi.Priority.High : ExactTargetApi.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 }