public async Task<ActionResult> Feedback(FeedbackModel model) { if (ModelState.IsValid) { var emailAccount = new EmailAccount(); emailAccount.Username = _configService.EmailUsername; emailAccount.UseDefaultCredentials = _configService.UseDefaultCredentialsForEmail; emailAccount.Port = _configService.EmailPort; emailAccount.Password = _configService.EmailPassword; emailAccount.Host = _configService.EmailHost; emailAccount.EnableSsl = _configService.UseSSLForEmail; emailAccount.Email = _configService.EmailAccount; emailAccount.DisplayName = _configService.EmailDisplayName; var mail = new Email(); mail.From = _configService.EmailAccount; mail.To = new string[] { _configService.DeveloperEmailAddress }; mail.Subject = "FATEC MOBILE - FEEDBACK"; StringBuilder builder = new StringBuilder(); builder.Append("Avaliação: ").Append(model.Rate).AppendLine() .Append("Comentários: ").AppendLine() .Append(model.Comments); mail.Body = builder.ToString(); await Task.Run(() => _emailService.SendEmail(emailAccount, mail)); return View("FeedbackSentConfirmation"); } return View(model); }
public void SendEmail(EmailAccount account, Email email) { if (account == null) throw new ArgumentNullException("account"); if (email == null) throw new ArgumentNullException("email"); using (var message = new MailMessage()) { message.From = new MailAddress(email.From, account.DisplayName); foreach (var address in email.To) message.To.Add(address.Trim()); foreach (var address in email.Cc) message.CC.Add(address.Trim()); foreach (var address in email.Bcc) message.Bcc.Add(address.Trim()); message.Subject = email.Subject; message.Body = email.Body; message.IsBodyHtml = false; using (var smtpClient = new SmtpClient()) { smtpClient.UseDefaultCredentials = account.UseDefaultCredentials; smtpClient.Host = account.Host; smtpClient.Port = account.Port; smtpClient.EnableSsl = account.EnableSsl; if (account.UseDefaultCredentials) smtpClient.Credentials = CredentialCache.DefaultNetworkCredentials; else smtpClient.Credentials = new NetworkCredential(account.Username, account.Password); smtpClient.Send(message); } } }
private static void SendEmailToDeveloper(Log log) { var emailService = DependencyResolver.Current.GetService<IEmailService>(); var configService = DependencyResolver.Current.GetService<IConfigurationProvider>(); var emailAccount = new EmailAccount(); emailAccount.Username = configService.EmailUsername; emailAccount.UseDefaultCredentials = configService.UseDefaultCredentialsForEmail; emailAccount.Port = configService.EmailPort; emailAccount.Password = configService.EmailPassword; emailAccount.Host = configService.EmailHost; emailAccount.EnableSsl = configService.UseSSLForEmail; emailAccount.Email = configService.EmailAccount; emailAccount.DisplayName = configService.EmailDisplayName; var mail = new Email(); mail.From = configService.EmailAccount; mail.To = new string[] { configService.DeveloperEmailAddress }; mail.Subject = "FATEC MOBILE - ERROR LOG"; StringBuilder builder = new StringBuilder(); builder .AppendFormat("Error on: {0}", DateTime.Now).AppendLine() .AppendFormat("Message: {0}", log.Message).AppendLine() .AppendFormat("User: {0}", log.Username).AppendLine() .Append("-----------------------------------------------------------------").AppendLine().AppendLine(); var serializedLog = CommonHelper.SerializeToXml(log); builder.Append(serializedLog).AppendLine() .Append("-----------------------------------------------------------------") .AppendLine(); mail.Body = builder.ToString(); emailService.SendEmail(emailAccount, mail); }