コード例 #1
0
        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"));
            }
        }
コード例 #2
0
        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);
        }