public deliveryObject[] TranslateDelivery(Message[] messages) { var deliveries = new List <deliveryObject>(); if (messages == null) { return(deliveries.ToArray()); } foreach (Message message in messages) { var recipients = new List <deliveryRecipientObject>(); recipients.Add(new deliveryRecipientObject { type = message.ContactType, id = message.ContactId }); var delivery = new deliveryObject { fromName = message.FromName, fromEmail = message.From, messageId = message.TemplateId, start = message.DateCreated, startSpecified = true, recipients = recipients.ToArray(), replyTracking = message.ReplyTrackingEnabled, replyTrackingSpecified = message.ReplyTrackingEnabled }; if (message.Transactional.GetValueOrDefault(false)) { delivery.type = "transactional"; } if (message.Tokens != null && message.Tokens.Count > 0) { delivery.fields = TranslateTokens(message.Tokens, message.MessageFormat); } deliveries.Add(delivery); } return(deliveries.ToArray()); }
public void Send() { /////////////////////////////////////////////////////////////////// // // login, which creates the requisite header // /////////////////////////////////////////////////////////////////// sessionHeader header = new sessionHeader(); BrontoSoapPortTypeClient client = new BrontoSoapPortTypeClient(); header.sessionId = client.login(ConfigurationManager.AppSettings[GetType().Name]); /////////////////////////////////////////////////////////////////// // // add recipients to contact list // /////////////////////////////////////////////////////////////////// List<contactObject> contactValues = new List<contactObject>(); foreach(string email in To) { contactObject co = new contactObject(); co.email = email; contactValues.Add(co); } writeResult contacts = client.addOrUpdateContacts(header, contactValues.ToArray()); /////////////////////////////////////////////////////////////////// // // using list of contacts, create list of recipients // /////////////////////////////////////////////////////////////////// List<deliveryRecipientObject> recipients = new List<deliveryRecipientObject>(); foreach(resultItem item in contacts.results) { deliveryRecipientObject recipient = new deliveryRecipientObject(); recipient.type = "contact"; recipient.id = item.id; recipients.Add(recipient); } /////////////////////////////////////////////////////////////////// // // add email to message list // /////////////////////////////////////////////////////////////////// messageContentObject mco = new messageContentObject(); mco.subject = Subject; mco.content = Body.Replace("\r\n", "<br>"); mco.type = "html"; messageObject mo = new messageObject(); mo.name = string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now); mo.content = new messageContentObject[] { mco }; writeResult messages = client.addMessages(header, new messageObject[] { mo }); /////////////////////////////////////////////////////////////////// // // using list of messages, create list of deliveries // /////////////////////////////////////////////////////////////////// List<deliveryObject> deliveries = new List<deliveryObject>(); foreach(resultItem item in messages.results) { deliveryObject delivery = new deliveryObject(); delivery.start = DateTime.Now; delivery.startSpecified = true; delivery.messageId = item.id; delivery.fromEmail = From; delivery.fromName = From.Substring(0, From.IndexOf('@')); delivery.recipients = recipients.ToArray(); deliveries.Add(delivery); } // send the deliveries! client.addDeliveriesAsync(header, deliveries.ToArray()); }
public BrontoResult Add(deliveryObject delivery) { return(Add(new deliveryObject[] { delivery })); }
private void WriteDeliveryAndMessageToConsole(deliveryObject delivery, messageObject message) { Console.WriteLine("Delivery returned: Date: {0} with ID {1} {2}, Status {2}, Sends {3}, Opens {4}, Clicks {5}, Bounces {6}", delivery.start, delivery.id, delivery.messageId, delivery.status, delivery.numSends, delivery.numOpens, delivery.numClicks, delivery.numBounces); }