public FeedbackController(IFeedbackRepository feedbackRepository, IOptions <EmailSettings> emailSettings, IFeedbackValidator feedbackValidator)
 {
     _feedbackRepository           = feedbackRepository;
     _feedbackValidator            = feedbackValidator;
     emailConfigDetail             = new EmailConfigDetail();
     this.emailSettings            = emailSettings.Value;
     emailConfigDetail.FromMailId  = this.emailSettings.FromAddress;
     emailConfigDetail.HostAddress = this.emailSettings.HostServer;
 }
        public string GenerateEmail(EmailConfigDetail emailConfig)
        {
            MailMessage mailMessage = new MailMessage();

            try
            {
                if (emailConfig != null)
                {
                    FromMailId         = emailConfig.FromMailId;
                    ToMailId           = emailConfig.ToMailId;
                    HostAddress        = emailConfig.HostAddress;
                    Body               = emailConfig.Body;
                    Subject            = emailConfig.Subject;
                    AttachmentFilePath = emailConfig.AttachmentFilePath;
                }

                mailMessage.To.Add(ToMailId);
                mailMessage.From       = new MailAddress(FromMailId);
                mailMessage.Subject    = Subject;
                mailMessage.Body       = Body;
                mailMessage.IsBodyHtml = true;
                if (!string.IsNullOrWhiteSpace(AttachmentFilePath))
                {
                    Attachment attachment = new Attachment(AttachmentFilePath, MediaTypeNames.Application.Pdf);
                    //ContentDisposition disposition = attachment.ContentDisposition;
                    string guid = attachment.Name.Split('_')[2];
                    attachment.Name = attachment.Name.Replace('_' + guid, string.Empty);
                    mailMessage.Attachments.Add(attachment);
                }

                SmtpClient smtp = new SmtpClient();
                smtp.Host           = HostAddress;
                smtp.Credentials    = new System.Net.NetworkCredential();
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.EnableSsl      = true;
                ServicePointManager.ServerCertificateValidationCallback =
                    delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
                { return(true); };

                smtp.Send(mailMessage);
                DisposeMailAttachments(mailMessage);
                retVal = "Email sent successfully";
                return(retVal);
            }
            catch (Exception ex)
            {
                DisposeMailAttachments(mailMessage);
                throw ex;
            }
            finally
            {
                DisposeMailAttachments(mailMessage);
            }
        }
        public string SendEmail(EmailConfigDetail emailConfig, string feedbackType)
        {
            EmailDetail email         = new EmailDetail();
            string      output        = "";
            var         emailContents = _feedbackRepository.GetFeedbackOptionsList(feedbackType);

            emailConfig.ToMailId = "*****@*****.**";
            emailConfig.Subject  = feedbackType;
            emailConfig.Body     = "";
            output = email.GenerateEmail(emailConfig);
            return(output);
        }