public Task <SwaggerResponse> SendMailAsync(MailDto mailMessage) { var headers = new Dictionary <string, IEnumerable <string> >(); try { var userId = _httpContextAccessor.HttpContext.User.FindFirst(cl => cl.Type.Equals("id")).Value; var profile = _unitOfWork.AppProfiles.FindById(userId); var to = new EmailAddress { Email = "*****@*****.**" }; var from = new EmailAddress { Email = profile.Identity.Email }; var mailPayload = new MailPayload { Subject = mailMessage.Subject, Body = mailMessage.Body, From = from }; mailPayload.ToList.Add(from); _mailClient.SetOptions(_mailConfigOptions); _mailClient.SendEmail(mailPayload); return(Task.Run(() => new SwaggerResponse(StatusCodes.Status200OK, headers))); } catch (Exception exception) { return(HandleException(exception, headers)); } }
public Task <SwaggerResponse <RegisterResponse> > RegisterUserAsync(RegisterDto registerDto) { var headers = new Dictionary <string, IEnumerable <string> >(); var userIdentity = _mapper.Map <AppUser>(registerDto); var result = _userManager.CreateAsync(userIdentity, registerDto.Password).Result; if (!result.Succeeded) { return(Task.FromResult(new SwaggerResponse <RegisterResponse>(StatusCodes.Status400BadRequest, headers, null, result.ToString()))); } var confirmationToken = _userManager.GenerateEmailConfirmationTokenAsync(userIdentity).Result; var cnf = System.Text.Encodings.Web.UrlEncoder.Default.Encode(confirmationToken); var to = new EmailAddress { Name = "Hans Tschan", Email = "*****@*****.**" }; var mailPayload = new MailPayload { Subject = "Bestätigung Kontoeröffnung" }; mailPayload.From = new EmailAddress { Email = _mailConfigOptions.From }; mailPayload.Body = $"Das ist ihr Link zum Bestätigen - bitte klicken Sie <a href='http://localhost:5000/api/v1/confirm?cnf={cnf}&id={userIdentity.Id}'>hier</a>, um Ihre E-Mail Adresse zu bestätigen."; _mailClient.SetOptions(_mailConfigOptions); _mailClient.SendEmail(mailPayload); return(Task.FromResult(new SwaggerResponse <RegisterResponse>(StatusCodes.Status201Created, headers, null, result.ToString()))); }