Пример #1
0
        public async Task <VQSendEmailResult> SendEmail(VQEmail email)
        {
            ValidateEmail(email);

            var client = new SendGridClient(SendGridToken);
            var msg    = new SendGridMessage
            {
                From        = new EmailAddress(email.From.Email, email.From.Name.IsNullOrWhiteSpaceOr(email.From.Email)),
                Subject     = email.Subject,
                HtmlContent = email.Body
            };

            if (email.To.ListHasItem())
            {
                email.To.ForEach(x => msg.AddTo(new EmailAddress(x.Email, x.Name.IsNullOrWhiteSpaceOr(x.Email))));
            }

            if (email.Attachments.ListHasItem())
            {
                email.Attachments.ForEach(x => msg.AddAttachment(new Attachment
                {
                    Content  = Convert.ToBase64String(x.Content),
                    Type     = x.Type,
                    Filename = x.Name
                }));
            }

            var response = await client.SendEmailAsync(msg);

            return(await ConvertResponseEmail(response));
        }
Пример #2
0
        public void ValidateEmail(VQEmail email)
        {
            if (email.Subject.IsNullOrWhiteSpace())
            {
                throw new Exception("Subject not set");
            }

            if (email.Body.IsNullOrWhiteSpace())
            {
                throw new Exception("Body not set");
            }

            if (email.To == null || !email.To.Any() || email.To.Any(x => x.Email.IsNullOrWhiteSpace()))
            {
                throw new Exception("To without e-mail address");
            }

            if (email.From == null || email.From.Email.IsNullOrWhiteSpace())
            {
                throw new Exception("From without e-mail address");
            }
        }
Пример #3
0
        public async Task <VQSendEmailResult> SendEmail(VQEmail email)
        {
            ValidateEmail(email);

            var msg = new MailMessage
            {
                Body       = email.Body,
                IsBodyHtml = true,
                Subject    = email.Subject,
                From       = new MailAddress(email.From.Email, email.From.Name.IsNullOrWhiteSpaceOr(email.From.Email)),
            };

            if (email.To.ListHasItem())
            {
                email.To.ForEach(x => msg.To.Add(new MailAddress(x.Email, x.Name.IsNullOrWhiteSpaceOr(x.Email))));
            }

            if (email.Attachments.ListHasItem())
            {
                email.Attachments.ForEach(x => msg.Attachments.Add(new Attachment(new MemoryStream(x.Content), x.Name, x.Type)));
            }

            try
            {
                await GetClient.SendMailAsync(msg);

                return(new VQSendEmailResult {
                    Sucess = true
                });
            }
            catch (Exception ex)
            {
                return(new VQSendEmailResult {
                    Sucess = false, ErrorMessage = ex.Message
                });
            }
        }