Example #1
0
        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);
        }
Example #2
0
        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}'");
        }
Example #3
0
 public async Task SendRegisterMail(RegisterMailContent content)
 {
     var(subject, body) = _mailBuilder.BuildRegistrationMail(content);
     await _emailService.SendAsync(content.Email, subject, body, true);
 }