public PublisherService(Interfaces.IMessage messageStoregeService)
 {
     _messageStorage = messageStoregeService;
 }
Beispiel #2
0
        /// <summary>
        /// Internal send message
        /// </summary>
        /// <param name="message">The message.</param>
        protected override void InternalSend(Interfaces.IMessage message)
        {
            var Message = message as EmailMessage;

            if (Message == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(Message.Body))
            {
                Message.Body = " ";
            }
            using (MailMessage TempMailMessage = new MailMessage())
            {
                char[] Splitter          = { ',', ';' };
                var    AddressCollection = Message.To.Split(Splitter);
                for (int x = 0; x < AddressCollection.Length; ++x)
                {
                    if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
                    {
                        TempMailMessage.To.Add(AddressCollection[x]);
                    }
                }
                if (!string.IsNullOrEmpty(Message.CC))
                {
                    AddressCollection = Message.CC.Split(Splitter);
                    for (int x = 0; x < AddressCollection.Length; ++x)
                    {
                        if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
                        {
                            TempMailMessage.CC.Add(AddressCollection[x]);
                        }
                    }
                }
                if (!string.IsNullOrEmpty(Message.Bcc))
                {
                    AddressCollection = Message.Bcc.Split(Splitter);
                    for (int x = 0; x < AddressCollection.Length; ++x)
                    {
                        if (!string.IsNullOrEmpty(AddressCollection[x].Trim()))
                        {
                            TempMailMessage.Bcc.Add(AddressCollection[x]);
                        }
                    }
                }
                TempMailMessage.Subject = Message.Subject;
                if (!string.IsNullOrEmpty(Message.From))
                {
                    TempMailMessage.From = new System.Net.Mail.MailAddress(Message.From);
                }
                using (AlternateView BodyView = AlternateView.CreateAlternateViewFromString(Message.Body, null, MediaTypeNames.Text.Html))
                {
                    foreach (LinkedResource Resource in Message.EmbeddedResources.Check(new List <LinkedResource>()))
                    {
                        BodyView.LinkedResources.Add(Resource);
                    }
                    TempMailMessage.AlternateViews.Add(BodyView);
                    TempMailMessage.Priority        = Message.Priority;
                    TempMailMessage.SubjectEncoding = System.Text.Encoding.GetEncoding("ISO-8859-1");
                    TempMailMessage.BodyEncoding    = System.Text.Encoding.GetEncoding("ISO-8859-1");
                    TempMailMessage.IsBodyHtml      = true;
                    foreach (Attachment TempAttachment in Message.Attachments.Check(new List <Attachment>()))
                    {
                        TempMailMessage.Attachments.Add(TempAttachment);
                    }
                    if (!string.IsNullOrEmpty(Message.Server))
                    {
                        SendMessage(new SmtpClient(Message.Server, Message.Port), Message, TempMailMessage);
                    }
                    else
                    {
                        SendMessage(new SmtpClient(), Message, TempMailMessage);
                    }
                }
            }
        }
Beispiel #3
0
 public QueuedMessage(Interfaces.IMessage msg)
 {
     this.msg = msg;
 }