public IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "ContactEmail")] HttpRequest req, ILogger log) { try { var data = JsonConvert.DeserializeObject <EmailObject>(new StreamReader(req.Body).ReadToEnd()); var response = _sendGridClient.SendEmail(MailHelper.CreateSingleEmail(new EmailAddress(data.Email, data.FullName), new EmailAddress("*****@*****.**", "Brandon Schenz"), data.Subject, BuildPlainTextContent(data), BuildHtmlContent(data))); if (response.StatusCode == HttpStatusCode.Accepted) { return(new NoContentResult()); } log.LogWarning("SendGrid Failed: StatusCode: {0} Body: {1} Headers: {2}", response.StatusCode, response.Body, response.Headers); return(new BadRequestObjectResult(response.Body)); } catch (Exception ex) { log.LogCritical(ex, "Error While Sending Email"); return(new BadRequestObjectResult("Error While Sending Email")); } }
private async Task <bool> TrySendEmail(CloudQueueMessage message) { var orderReceived = JsonConvert.DeserializeObject <OrderReceivedMessage>(message.AsString); var isSuccessful = await _sendGridClient.SendEmail(orderReceived); if (isSuccessful) { _logger.LogInformation("Mail sent successfully"); return(true); } _logger.LogInformation($"Couldn't send email for order {orderReceived.OrderId}"); if (message.DequeueCount > 5) { _logger.LogInformation($"Sending message to DLQ"); return(true); } return(false); }