public async Task <bool> SendEmail(EmailParamVM message) { _logger.LogInformation("EmailSenderService.SendEmail - Service starts."); try { ComposeEmail(message); await _emailPusher.SendMailAsync(_message); _message = new MailMessage(); } catch (Exception ex) { _logger.LogError("EmailSenderService.SendEmail - Error: " + ex); return(false); } return(true); }
private void ComposeEmail(EmailParamVM message) { _message.From = new MailAddress( string.IsNullOrEmpty(message.SenderAddress) ? HidroConstants.MAIL_SENDER_ADDRESS : message.SenderAddress, string.IsNullOrEmpty(message.SenderName) ? HidroConstants.MAIL_SENDER_NAME : message.SenderName ); _message.To.Add(new MailAddress(message.ReceiverAddress, message.ReceiverName)); _message.Subject = message.Subject; _message.IsBodyHtml = true; _message.Body = message.Body; if (message.Attachments != null) { foreach (var attachment in message.Attachments) { _message.Attachments.Add(new Attachment(attachment)); } } }
public async Task <JsonResult> UpdateAccountIdentity(AccountIdentityVM identity) { _logger.LogInformation("AccountController.UpdateAccountIdentity - hidrogenianId=" + identity.Id); var validation = await _reCaptchaService.IsHumanRegistration(identity.CaptchaToken); if (!validation.Result) { return(new JsonResult(validation)); } var verification = VerifyIdentityData(identity); if (verification.Count != 0) { var messages = identity.GenerateErrorMessages(verification); return(new JsonResult(new { Result = RESULTS.FAILED, Message = messages })); } var(key, value) = await _accountService.UpdateIdentityForHidrogenian(identity); if (!key) { return(new JsonResult(new { Result = RESULTS.FAILED, Message = "Account not found with the given data. Please try again." })); } if (value == null) { return(new JsonResult(new { Result = RESULTS.FAILED, Message = "An error occurred while attempting to update your account. Please try again." })); } var oldIdentity = value.Value.Key; var newIdentity = value.Value.Value; var hidrogenian = new HidrogenianVM { Id = newIdentity.Id, Token = _authService.GenerateRandomToken() }; if (!newIdentity.EmailConfirmed) { if (await _userService.SetAccountConfirmationToken(hidrogenian)) { var profile = await _profileService.GetPublicProfileFor(newIdentity.Id); string emailTemplate; using (var reader = File.OpenText(PROJECT_FOLDER + @"HtmlTemplates/EmailChanged.html")) { emailTemplate = await reader.ReadToEndAsync(); }; emailTemplate = emailTemplate.Replace("[HidrogenianName]", profile.FullName); emailTemplate = emailTemplate.Replace("[HidrogenianEmail]", newIdentity.Email); emailTemplate = emailTemplate.Replace("[CONFIRM-TOKEN]", hidrogenian.Token); var emailChangedEmail = new EmailParamVM { ReceiverName = profile.FullName, ReceiverAddress = hidrogenian.Email, Subject = "Hidrogen - Confirm your email", Body = emailTemplate }; if (await _emailService.SendEmail(emailChangedEmail)) { await _accountService.ReverseIdentityChanges(oldIdentity); return(new JsonResult(new { Result = RESULTS.INTERRUPTED, Message = "The confirmation email was failed to send. Your changes was not applied. Please try again." })); } } } if (!string.IsNullOrEmpty(newIdentity.PhoneNumber) && !newIdentity.PhoneConfirmed) { //Send SMS to confirm phone number } return(new JsonResult(new { Result = RESULTS.SUCCESS, Message = newIdentity })); }