Esempio n. 1
0
        public IActionResult SendContactMessage([FromBody] ContactDto contact)
        {
            var secret = _webConfiguration.RecaptchaSecret;

            contact.Subject = "Contact Form Submission";

            var captchaResponse = CaptchaHelper.GetCaptchaResponse(
                secret,
                contact?.ClientResponse,
                HttpContext.Connection.RemoteIpAddress.ToString());

            if (!captchaResponse.Success)
            {
                return(BadRequest());
            }

            var email = new SendGridTransactionalMessageDto
            {
                ApiKey      = _webConfiguration.SendGridApiKey,
                Recipients  = SendGridConstants.SendGrid_DevelopmentRecipientEmail,
                FromAddress = SendGridConstants.SendGrid_DevelopmentRecipientEmail,
                Subject     = "Gray Wolf Contact Form",
                HtmlMessage =
                    $@"Name: {contact.Name} <br/>
                    Phone: {contact.PhoneNumber} <br/>
                    Email: {contact.Email} <br/>
                    Type: {contact.HelpYou} <br/>
                    Message: {contact.Comments}"
            };

            var response = _sendGridService.SendSingleEmail(email);

            return(Ok());
        }
        public void LoggingTest()
        {
            var email = new SendGridTransactionalMessageDto
            {
                ApiKey      = _sendGridApiKey,
                Recipients  = SendGridConstants.SendGrid_DevelopmentRecipientEmail,
                FromAddress = SendGridConstants.SendGrid_DevelopmentRecipientEmail,
                Subject     = "Test of SendGrid email",
                TextMessage = "Test of SendGrid email"
            };

            var response = _sendGridService.SendSingleEmail(email);


            Assert.That(response.Valid, Is.True);
        }
Esempio n. 3
0
        public SendGridResponseDto SendTransactionalEmail(SendGridTransactionalMessageDto messageDto)
        {
            var response = new SendGridResponseDto
            {
                Valid = false
            };

            if (messageDto.TemplateEngine == null)
            {
                response.Message = "SendGrid Template is missing";
                return(response);
            }

            if (messageDto.Subject == null)
            {
                response.Message = "Subject required";
                return(response);
            }

            if (string.IsNullOrEmpty(messageDto.Recipients))
            {
                response.Message = "Recipient(s) required";
                return(response);
            }

            try
            {
                var client  = new SendGridClient(messageDto.ApiKey);
                var message = new SendGridMessage();
                message.AddTo(messageDto.Recipients);

                if (!string.IsNullOrEmpty(messageDto.Bcc))
                {
                    message.AddBcc(messageDto.Bcc);
                }

                message.SetFrom(new EmailAddress(messageDto.FromAddress));
                message.SetSubject(messageDto.Subject);

                if (messageDto.TextMessage.IsNotNullOrEmpty())
                {
                    message.AddContent(MimeType.Text, messageDto.TextMessage);
                }

                if (messageDto.HtmlMessage.IsNotNullOrEmpty())
                {
                    message.AddContent(MimeType.Html, messageDto.HtmlMessage);
                }

                if (messageDto.Categories != null)
                {
                    message.Categories = messageDto.Categories;
                }

                if (messageDto.Substitutions != null)
                {
                    foreach (var key in messageDto.Substitutions.Keys)
                    {
                        message.AddSubstitution(key, messageDto.Substitutions[key].ToString());
                    }
                }

                if (messageDto.TemplateEngine.IsNotNullOrEmpty())
                {
                    message.TemplateId = messageDto.TemplateEngine;
                }

                message.TrackingSettings = new TrackingSettings();
                message.TrackingSettings.ClickTracking =
                    new ClickTracking
                {
                    Enable = messageDto.EnableClickTracking
                };

                message.SetSubscriptionTracking(!messageDto.DisableUnsubscribe);
                var sgResponse = client.SendEmailAsync(message);
                Thread.Sleep(1000);

                response.Valid   = true;
                response.Message = string.Concat(messageDto.Subject, " sent to ", messageDto.Recipients);
            }
            catch (Exception ex)
            {
                response.Valid   = false;
                response.Message = ex.Message;
            }

            return(response);
        }
Esempio n. 4
0
        public SendGridResponseDto SendSingleEmail(SendGridTransactionalMessageDto messageDto)
        {
            var response = new SendGridResponseDto
            {
                Valid = false
            };

            if (messageDto.Subject == null)
            {
                response.Message = "Subject required";
                return(response);
            }

            if (string.IsNullOrEmpty(messageDto.Recipients))
            {
                response.Message = "Recipient(s) required";
                return(response);
            }

            if (messageDto.TextMessage.IsNullOrEmpty() && messageDto.HtmlMessage.IsNullOrEmpty())
            {
                response.Message = "Email body required.";
                return(response);
            }

            try
            {
                var client    = new SendGridClient(messageDto.ApiKey);
                var message   = new SendGridMessage();
                var recipient = messageDto.DevelopmentMode ? SendGridConstants.SendGrid_DevelopmentRecipientEmail : messageDto.Recipients;
                message.AddTo(recipient);

                if (!string.IsNullOrEmpty(messageDto.Bcc))
                {
                    message.AddBcc(messageDto.Bcc);
                }

                message.SetFrom(new EmailAddress(messageDto.FromAddress));
                message.SetSubject(messageDto.Subject);

                if (messageDto.TextMessage.IsNotNullOrEmpty())
                {
                    message.AddContent(MimeType.Text, messageDto.TextMessage);
                }

                if (messageDto.HtmlMessage.IsNotNullOrEmpty())
                {
                    message.AddContent(MimeType.Html, messageDto.HtmlMessage);
                }

                if (messageDto.Categories != null)
                {
                    message.Categories = messageDto.Categories;
                }

                var sgResponse = client.SendEmailAsync(message);
                Thread.Sleep(1000);

                response.Valid   = true;
                response.Message = string.Concat(messageDto.Subject, " sent to ", messageDto.Recipients);
            }
            catch (Exception ex)
            {
                response.Valid   = false;
                response.Message = ex.Message;
            }

            return(response);
        }