Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 2
0
 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);
 }