public (string subject, string body) BuildRegistrationMail(RegisterMailContent content) { var subject = MailTemplate.RegistrationSubject; var builder = new UriBuilder { Scheme = "http", Host = "localhost", Port = 5000, Path = "api/users/confirm" }; var query = HttpUtility.ParseQueryString(builder.Query); query["username"] = content.UserName; query["code"] = content.Code; builder.Query = query.ToString(); var now = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss"); var body = MailTemplate.RegistrationBody .Replace(RegistrationSubjectKey, subject) .Replace(RegistrationConfirmCodeUrlKey, builder.ToString()) .Replace(RegistrationUserLoginKey, content.UserName) .Replace(RegistrationUserPasswordKey, content.Password) .Replace(RegistrationDate, now); return(subject, body); }
private async Task SendEmailConfirm(Core.Entities.User user, string password) { var content = new RegisterMailContent { Email = user.Email, UserName = user.UserName, Password = password, Code = await _userManager.GenerateEmailConfirmationTokenAsync(_mapper.Map <User>(user)) }; await _mailService.SendRegisterMail(content); _logger.LogInformation($"Send email for user='******' Code='{content.Code}'"); }
public async Task SendRegisterMail(RegisterMailContent content) { var(subject, body) = _mailBuilder.BuildRegistrationMail(content); await _emailService.SendAsync(content.Email, subject, body, true); }