Beispiel #1
0
        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());
        }
Beispiel #3
0
 public BrontoResult Add(deliveryObject delivery)
 {
     return(Add(new deliveryObject[] { delivery }));
 }
Beispiel #4
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);
 }