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