async public Task TestEmailMessage() { var scotchMode = ScotchMode.Replaying; var client = HttpClients.NewHttpClient("IntegrationTests/Cassettes/EmailMessage.json", scotchMode); string tokenKey = "key"; string tokenSecret = "secret"; string host = "https://dvfoa3pu2rxx6.cloudfront.net/api/v1/"; OmnigageClient.Init(tokenKey, tokenSecret, host, client); EmailMessageResource emailMessage = new EmailMessageResource(); emailMessage.Subject = "Ahoy"; emailMessage.Body = "Sample body"; await emailMessage.Create(); EmailResource email = new EmailResource(); email.To = "*****@*****.**"; email.EmailMessage = emailMessage; email.EmailId = new EmailIdResource { Id = "NbXW9TCHax9zfAeDhaY2bG" }; await email.Create(); }
/// <summary> /// To run this application, the following is required: /// /// - API token key/secret from Account -> Developer -> API Tokens /// - A verified Phone Number UUID from Account -> Email -> Email IDs -> Edit (in the URI) /// - Fill in variables to run example /// </summary> /// <param name="args"></param> async static Task Main(string[] args) { var tokenKey = ""; var tokenSecret = ""; // Set the Email ID (e.g., NbXW9TCHax9zfAeDhaY2bG) var emailId = ""; // Recipient email address var to = ""; // Initialize SDK OmnigageClient.Init(tokenKey, tokenSecret); // Create email message var message = new EmailMessageResource { Subject = "Ahoy", Body = "Sample body" }; await message.Create(); // Send email var email = new EmailResource { To = to, EmailMessage = message, EmailId = new EmailIdResource { Id = emailId } }; await email.Create(); }
public async Task <GenericResponse <StatusResponse> > ForgetPasswordAsync(EmailResource emailResource) { var user = await _userManager.FindByEmailAsync(emailResource.Email); if (user == null) { return new GenericResponse <StatusResponse> { Succeeded = false, ErrorMessage = "The user account does not exists" } } ; if (!await _userManager.IsEmailConfirmedAsync(user)) { return new GenericResponse <StatusResponse> { Succeeded = false, ErrorMessage = "The user account is inactive, try to confirm your email address" } } ; await SendResetPassword(user); return(new GenericResponse <StatusResponse> { Succeeded = true, Data = new StatusResponse { Status = $"Check your {user.Email} for instruction to reset your password" } }); }
public async Task <IActionResult> ForgotPassword([FromBody] EmailResource emailResource) { var result = await _authService.ForgetPasswordAsync(emailResource); if (!result.Succeeded) { return(BadRequest(result.ErrorMessage)); } return(Ok(result.Data)); }
public async Task <IActionResult> ResendEmailConfirmation([FromBody] EmailResource email) { var result = await _authService.ResendEmailConfirmationLinkAsync(email); if (!result.Succeeded) { return(BadRequest(result.ErrorMessage)); } return(Ok(result.Data)); }
/// <summary> /// Execute a command asynchronously. /// </summary> /// <param name="command">Command to execute.</param> /// <returns> /// Task which will be completed once the command has been executed. /// </returns> public async Task ExecuteAsync(SendTemplateEmail command) { var loader = new TemplateLoader(); var templateParser = new TemplateParser(); var layout = loader.Load("Layout"); var template = loader.Load(command.TemplateName); var html = templateParser.RunAll(template, command.Model); if (html.IndexOf("src=\"cid:", StringComparison.OrdinalIgnoreCase) == -1) { html = html.Replace(@"src=""", @"src=""cid:"); } string complete; try { complete = templateParser.RunFormatterOnly(layout, new { Title = command.MailTitle, Body = html }); } catch (Exception) { throw; } var msg = new EmailMessage(command.To) { Subject = command.Subject, HtmlBody = complete }; foreach (var resource in template.Resources) { var linkedResource = new EmailResource(resource.Key, resource.Value); var reader = new BinaryReader(resource.Value); var dimensions = ImageHelper.GetDimensions(reader); var key = string.Format("src=\"cid:{0}\"", resource.Key); complete = complete.Replace(key, string.Format("{0} width=\"{1}\" height=\"{2}\" style=\"border: 1px solid #000\"", key, dimensions.Width, dimensions.Height)); resource.Value.Position = 0; msg.Resources.Add(linkedResource); } foreach (var resource in layout.Resources) { var linkedResource = new EmailResource(resource.Key, resource.Value); var reader = new BinaryReader(resource.Value); var dimensions = ImageHelper.GetDimensions(reader); var key = string.Format("src=\"cid:{0}\"", resource.Key); complete = complete.Replace(key, string.Format("{0} width=\"{1}\" height=\"{2}\"", key, dimensions.Width, dimensions.Height)); resource.Value.Position = 0; msg.Resources.Add(linkedResource); } if (command.Resources != null) { foreach (var resource in command.Resources) { msg.Resources.Add(resource); } } msg.HtmlBody = complete; var sendEmail = new SendEmail(msg); await _commandBus.ExecuteAsync(sendEmail); }
public async Task <ActionResult <IEnumerable <RequestResource> > > GetRequestsByEmail([FromBody] EmailResource email) { var requests = await _requestService.GetAllRequestsByEmail(email.Email); var requestResources = _mapper.Map <IEnumerable <Request>, IEnumerable <RequestResource> >(requests); return(Ok(requestResources)); }
public async Task <GenericResponse <StatusResponse> > ResendEmailConfirmationLinkAsync(EmailResource emailResource) { var user = await _userManager.FindByEmailAsync(emailResource.Email); if (user == null) { return new GenericResponse <StatusResponse> { Succeeded = false, ErrorMessage = "The account does not exist!" } } ; if (await _userManager.IsEmailConfirmedAsync(user)) { return new GenericResponse <StatusResponse> { Succeeded = false, ErrorMessage = "The account email is already confirmed" } } ; await SendEmailConfirmationLink(user); return(new GenericResponse <StatusResponse> { Succeeded = true, Data = new StatusResponse { Status = $"Please check your {user.Email} for link to confirm your email" } }); }