예제 #1
0
        public bool WriteMailMessageToQueue(CustomerDetails customer, string filename, string fromMailAddress,
                                            string queuePath)
        {
            if (customer == null)
            {
                return(false);
            }

            bool queueStatus = false;

            try
            {
                using (MailMessage mail = new MailMessage())
                {
                    string[] toEmails = customer.emailList.Split(',');

                    foreach (string email in toEmails)
                    {
                        if (!string.IsNullOrWhiteSpace(email))
                        {
                            mail.To.Add(new MailAddress(email));
                        }
                    }

                    if (FileExists(filename))
                    {
                        mail.Attachments.Add(new Attachment(Open(filename), GetFileName(filename)));
                    }

                    mail.Subject = "Eurofins DQCI M2M Report";
                    mail.Sender  = new MailAddress(fromMailAddress);
                    mail.From    = new MailAddress(fromMailAddress);
                    mail.Body    = "This is an automated Report Delivery. Please find your report attached";

                    SerializeableMailMessage serializedMail = new SerializeableMailMessage(mail);
                    Message queueMessage = new Message();
                    queueMessage.Body        = serializedMail;
                    queueMessage.Recoverable = true;

                    queueMessage.Formatter = new BinaryMessageFormatter();


                    MessageQueue queue = new MessageQueue(queuePath);
                    queue.Send(queueMessage);
                    queueStatus = true;
                }
            }
            catch (Exception exception)
            {
                //if (retryCount-- > 0)
                //    WriteMailMessageToQueue(transactionInfo, linkToFile, fileFormat, retryCount);

                //string errDet = ExceptionFormatter.GetFormattedExceptionDetails(exception);
                //_error.Error(errDet, exception);
            }
            return(queueStatus);
        }
예제 #2
0
        private string SerializeMessage(MailMessage mailMessage)
        {
            string serializedMessage;

            using (var ms = new MemoryStream())
            {
                var serializedMailMessage = new SerializeableMailMessage(mailMessage);
                new BinaryFormatter().Serialize(ms, serializedMailMessage);
                serializedMessage = Convert.ToBase64String(ms.ToArray());
            }
            return(serializedMessage);
        }
예제 #3
0
        public bool SendQueueMails(string queuePath, string SMTPServer, int SMTPPortNumber, string SMTPUserName,
                                   string SMTPPassword, ref string fileAttchementname)
        {
            try
            {
                MessageQueue queue = new MessageQueue(queuePath);

                SMTPHelper smtpHelper = new SMTPHelper();
                smtpHelper.Host     = SMTPServer;     // _configHelper.GetConfigValue("SMTPServer");
                smtpHelper.Port     = SMTPPortNumber; //Convert.ToInt32(_configHelper.GetConfigValue("SMTPPortNumber"));
                smtpHelper.UserName = SMTPUserName;   //_configHelper.GetConfigValue("SMTPUserName");
                smtpHelper.Password = SMTPPassword;   //_configHelper.GetConfigValue("SMTPPassword");

                Message msg = queue.Receive(TimeSpan.Zero);

                if (msg == null)
                {
                    return(false);
                }

                msg.Formatter = new BinaryMessageFormatter();
                if (msg.Body is SerializeableMailMessage)
                {
                    SerializeableMailMessage mail = (SerializeableMailMessage)msg.Body;
                    try
                    {
                        MailMessage objMsg = mail.GetMailMessage();

                        string attachments =
                            objMsg.Attachments.AsEnumerable().Select(a => a.Name).FirstOrDefault();

                        smtpHelper.Send(objMsg);
                        fileAttchementname = attachments;
                    }
                    catch (Exception ex)
                    {
                        Logger.WriteException(ex);
                        return(false);
                    }
                }
            }
            catch (MessageQueueException mqe)
            {
                if (mqe.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
                {
                    return(false);
                }

                return(false);
            }
            return(true);
        }
예제 #4
0
        public bool WriteMailMessageToQueue(string filename, string fromMailAddress,
                                            string queuePath)
        {
            bool queueStatus = false;

            try
            {
                using (MailMessage mail = new MailMessage())
                {
                    mail.To.Add(new MailAddress("*****@*****.**"));
                    mail.To.Add(new MailAddress("*****@*****.**"));
                    mail.To.Add(new MailAddress("*****@*****.**"));

                    if (FileExists(filename))
                    {
                        mail.Attachments.Add(new Attachment(Open(filename), "DEAN09111325.CSV"));
                    }

                    mail.Subject = "Eurofins DQCI M2M Report";
                    mail.Sender  = new MailAddress(fromMailAddress);
                    mail.From    = new MailAddress(fromMailAddress);
                    mail.Body    = "From server : " + Environment.MachineName + " at " + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss fff");

                    SerializeableMailMessage serializedMail = new SerializeableMailMessage(mail);
                    Message queueMessage = new Message();
                    queueMessage.Body        = serializedMail;
                    queueMessage.Recoverable = true;

                    queueMessage.Formatter = new BinaryMessageFormatter();


                    MessageQueue queue = new MessageQueue(queuePath);
                    queue.Send(queueMessage);
                    queueStatus = true;
                }
            }
            catch (Exception exception)
            {
                Logger.WriteException(exception);
            }
            return(queueStatus);
        }