Beispiel #1
0
        /// <summary>
        /// Sends message to receiver
        /// </summary>
        public void Send(string receiverMail, string bodyText, string subject)
        {
            receiverMail.ExcIfNullOrEmpty();
            bodyText.ExcIfNullOrEmpty();
            subject.ExcIfNullOrEmpty();
            client.ExcIfNull();

            MailMessage message = new MailMessage();

            string receiverAddress = receiverMail;

            message.IsBodyHtml = true;

            message.Body    = bodyText;
            message.Subject = subject;
            message.To.Add(receiverAddress);

            try
            {
                ParameterizedThreadStart sendingThreadStart = new ParameterizedThreadStart(SendThreadProc);
                Thread           sendingThread       = new Thread(sendingThreadStart);
                MailThreadParams sendingThreadParams = new MailThreadParams();

                sendingThreadParams.Client  = client;
                sendingThreadParams.Message = message;

                sendingThread.Start(sendingThreadParams);
            }
            catch (Exception ex)
            {
                // Do not include the message body, because it may contain a password.
                string errMsg = string.Format("Could not send email To : '{0}'.", receiverMail);
                Tools.NewToolsException(errMsg + Environment.NewLine + ex);
            }
        }
Beispiel #2
0
        private void SendThreadProc(object threadParams)
        {
            try
            {
                lock (sendingMail)
                {
                    MailThreadParams mailParams = threadParams as MailThreadParams;

                    if (mailParams == null)
                    {
                        string msg = string.Format(
                            "threadParams argument must be of type \"{0}\". Actual type passed: \"{1}\".",
                            typeof(MailThreadParams).FullName,
                            threadParams != null ? threadParams.GetType().FullName : "null");
                        Tools.NewToolsException(msg);
                    }
                    if (mailParams.Client == null)
                    {
                        Tools.NewToolsException("No Client.");
                    }
                    if (mailParams.Message == null)
                    {
                        Tools.NewToolsException("No Message.");
                    }

                    try
                    {
                        client.Send(mailParams.Message);
                    }
                    finally
                    {
                        mailParams.Message.Dispose();
                    }
                }
            }
            catch (Exception ex)
            {
            }
        }