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)); }
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"); } }
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 }); } }