public static async Task SendMessage(ISesEvent evento) { SetMessageModel model = GetMessage(evento); req = SetMessage(model); await _Client.SendEmailAsync(req); }
private static SetMessageModel GetMessage(ISesEvent evento) { SetMessageModel model = new SetMessageModel(); model.RecipientEmail = evento.Mail.Destination.Find(t => t.Contains(evento.Mail.Tags.Email[0])); switch (evento.EventType) { case "Click": model.Subject = "User clicked email"; model.Body = $"User {model.RecipientEmail} has clicked link {evento.Click.Link} at {evento.Click.timestamp}"; model.SourceEmail = "*****@*****.**"; break; case "Open": model.Subject = "User open email"; model.Body = $"User {model.RecipientEmail} has opened {evento.Mail.CommonHeaders.Subject} email at {evento.Open.timestamp}"; model.SourceEmail = "*****@*****.**"; break; default: break; } return(model); }
/// <summary> /// This method is called for every Lambda invocation. This method takes in an SNS event object and can be used /// to respond to SNS messages. /// </summary> /// <param name="evnt"></param> /// <param name="context"></param> /// <returns></returns> public async Task FunctionHandler(SNSEvent evnt, ILambdaContext context) { ISesEvent evento = JsonSerializer.Deserialize <SesEvent>(evnt.Records[0].Sns.Message); await SesService.SendMessage(evento); }