/// <summary>
 /// Send an email message from the sender to the receiver.
 /// </summary>
 /// <param name="recipient">The receiver of the email to send.</param>
 /// <param name="message">The message to send.</param>
 /// <returns>Returns true if email is successfully sent, false otherwise.</returns>
 public bool SendWithDefaultSender(MEmailClient recipient, MEmailMessage message)
 {
     return Send(Sender, recipient, message);
 }
        /// <summary>
        /// Send an email message from the sender to the receiver.
        /// </summary>
        /// <param name="sender">The sender of the email, with the credentials initialized.</param>
        /// <param name="recipient">The receiver of the email.</param>
        /// <param name="message">The message to send.</param>
        /// <returns>Returns true if email is successfully sent, false otherwise.</returns>
        public bool Send(MEmailClient sender, MEmailClient recipient, MEmailMessage message)
        {
            // initialize the boolean which serves as a feedback whether this task is successful/not
            bool isSuccess = false;

            try
            {
                // set the mail message to be sent with From, To, Subject, etc.
                MailMessage mailMessage = new MailMessage();
                mailMessage.To.Add(recipient.ClientAddress);

                // set the sender details (email ID and display name of the sender)
                mailMessage.From = new MailAddress(sender.ClientAddress, sender.ClientName);

                // get the email subject and message
                mailMessage.Subject = message.Subject;
                mailMessage.Body = message.Message;

                // set the mail message to render the text as HTML / Non-HTML
                mailMessage.IsBodyHtml = message.IsBodyHtml;

                // set an SMTP client object (which defines the protocol used to send email messages)
                SmtpClient smtpClient = new SmtpClient(sender.Provider.Host, sender.Provider.Port);
                smtpClient.EnableSsl = true;		// HTTPS
                smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtpClient.UseDefaultCredentials = false;

                // set the sender credentials
                smtpClient.Credentials = new NetworkCredential(sender.ClientAddress, sender.ClientSecret);

                // MAX timeout to wait for the server to respond (set to 10 seconds)
                smtpClient.Timeout = 10000;

                // send the email message
                smtpClient.Send(mailMessage);

                // smtpClient.Send will generate an exception in case of failure
                // hence, if it reaches here, the email has been successful sent
                isSuccess = true;
            }
            catch (Exception)
            {
                // An exception occurs, hence, the email has not been sent.
                isSuccess = false;
            }

            // return the feedback whether the task is completed successfully/not
            return isSuccess;
        }