Exemplo n.º 1
0
        public async System.Threading.Tasks.Task <System.Net.HttpStatusCode> SendAsync()
        {
            if (System.String.IsNullOrWhiteSpace(this.APIKeyPassword))
            {
                return(System.Net.HttpStatusCode.Unauthorized);
            }

            if ((this.From == null) || (System.String.IsNullOrWhiteSpace(this.From.Address)) || (this.To == null) || (!(To.Any())) || (To.Any(i => System.String.IsNullOrWhiteSpace(i.Address))))
            {
                return(System.Net.HttpStatusCode.BadRequest);
            }

            SendGrid.SendGridClient            Client           = new SendGrid.SendGridClient(this.APIKeyPassword);
            SendGrid.Helpers.Mail.EmailAddress FromEmailAddress = new SendGrid.Helpers.Mail.EmailAddress(this.From.Address, this.From.Name);

            SendGrid.Helpers.Mail.SendGridMessage Message;
            if (this.To.Count == 1)
            {
                Message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(FromEmailAddress, new SendGrid.Helpers.Mail.EmailAddress(this.To[0].Address, this.To[0].Name), this.Subject, this.PlainTextContent, this.HTMLContent);
            }
            else
            {
                Message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmailToMultipleRecipients(FromEmailAddress, To.Select(i => new SendGrid.Helpers.Mail.EmailAddress(i.Address, i.Name)).ToList(), this.Subject, this.PlainTextContent, this.HTMLContent);
            }

            return((await Client.SendEmailAsync(Message)).StatusCode);
        }
Exemplo n.º 2
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from    = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "This Site Sucks");
            var to      = new SendGrid.Helpers.Mail.EmailAddress(recipient);
            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            message.SetTemplateId("00d2976e-dc01-4402-9090-860f33bd424d");
            var mailResult = await _sendGridClient.SendEmailAsync(message);

            SendEmailResult result = new SendEmailResult();

            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                result.Success = true;
            }
            else
            {
                var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body);
                result.Success = false;
                foreach (var error in badMailResponse["errors"])
                {
                    result.Errors.Add(new SendEmailResult.SendEmailError
                    {
                        Message = error.message,
                        Field   = error.field,
                        Help    = error.help
                    });
                }
            }
            return(result);
        }
Exemplo n.º 3
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "My Boat");

            var to      = new SendGrid.Helpers.Mail.EmailAddress(recipient);
            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
            //message.SetTemplateId("a58eb3b6-f8e3-403d-bdba-5796e2df4172");
            var mailResult = await _sendGridClient.SendEmailAsync(message);

            SendEmailResult result = new SendEmailResult();

            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                result.Success = true;
            }
            else
            {
                var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body);
                result.Success = false;
                foreach (var error in badMailResponse["errors"])
                {
                    result.Errors.Add(new SendEmailResult.SendEmailError
                    {
                        Message = error.message,
                        Field   = error.field,
                        Help    = error.help
                    });
                }
            }
            return(result);
        }
Exemplo n.º 4
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Thanks for contacting Donut Store");

            var to = new SendGrid.Helpers.Mail.EmailAddress(recipient);

            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            //you have to get this ID from your sendgrid template
            message.SetTemplateId("cc6c2090-780c-4b81-8355-ad1776efd1de");
            var mailResult = await _sendGridClient.SendEmailAsync(message);


            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                return(new SendEmailResult
                {
                    Success = true
                });
            }
            else
            {
                return(new SendEmailResult
                {
                    Success = false,
                    Message = await mailResult.Body.ReadAsStringAsync()
                });
            }
        }
Exemplo n.º 5
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "The Chesed Project");

            var to      = new SendGrid.Helpers.Mail.EmailAddress(recipient);
            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            message.SetTemplateId("f54eaab7-93e1-48c4-9fc0-706fadd1af38");
            var mailResult = await _sendGridClient.SendEmailAsync(message);

            SendEmailResult result = new SendEmailResult();

            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                result.Success = true;
            }
            else
            {
                var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body);
                result.Success = false;
                foreach (var error in badMailResponse["errors"])
                {
                    result.Errors.Add(new SendEmailResult.SendEmailError
                    {
                        Message = error.message,
                        Field   = error.field,
                        Help    = error.help
                    });
                }
            }
            return(result);
        }
Exemplo n.º 6
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from    = new SendGrid.Helpers.Mail.EmailAddress("admin@flavortownburgers", "Flavor Town Burgers");
            var to      = new SendGrid.Helpers.Mail.EmailAddress(recipient);
            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            message.SetTemplateId("bd93b262-7f59-4ceb-a9ad-73f64ab6526e");
            var mailResult = await _sendGridClient.SendEmailAsync(message);


            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                return(new SendEmailResult
                {
                    Success = true
                });
            }
            else
            {
                return(new SendEmailResult
                {
                    Success = false,
                    Message = await mailResult.Body.ReadAsStringAsync()
                });
            }
        }
Exemplo n.º 7
0
        public async Task <SendEmailResult> ContactEmailAsync(string sender, string subject, string htmlContent, string plainTextContent)
        {
            var to = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**");

            var from       = new SendGrid.Helpers.Mail.EmailAddress(sender);
            var message    = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
            var mailResult = await _sendGridClient.SendEmailAsync(message);


            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                return(new SendEmailResult
                {
                    Success = true
                });
            }
            else
            {
                return(new SendEmailResult
                {
                    Success = false,
                    Message = await mailResult.Body.ReadAsStringAsync()
                });
            }
        }
Exemplo n.º 8
0
        public async System.Threading.Tasks.Task <ActionResult> Register(string username, string email, string password)
        {
            var userStore = new Microsoft.AspNet.Identity.EntityFramework.UserStore <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>();
            var manager   = new Microsoft.AspNet.Identity.UserManager <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(userStore);
            var user      = new Microsoft.AspNet.Identity.EntityFramework.IdentityUser()
            {
                UserName = username, Email = email, EmailConfirmed = false
            };

            manager.UserTokenProvider =
                new Microsoft.AspNet.Identity.EmailTokenProvider <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>();

            Microsoft.AspNet.Identity.IdentityResult result = await manager.CreateAsync(user, password);

            if (result.Succeeded)
            {
                //I have some options: log them in, or I can send them an email to "Confirm" their account details.'
                //I don't have email set up this week, so we'll come back to that.
                string confirmationToken = await manager.GenerateEmailConfirmationTokenAsync(user.Id);

                string confirmationLink = Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/Confirm/" + user.Id + "?token=" + confirmationToken;

                string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"];

                SendGrid.ISendGridClient           client = new SendGrid.SendGridClient(apiKey);
                SendGrid.Helpers.Mail.EmailAddress from   = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Coding Cookware Administrator");

                SendGrid.Helpers.Mail.EmailAddress to = new SendGrid.Helpers.Mail.EmailAddress(email);

                string subject = "Confirm your Coding Cookware Account";

                string htmlContent      = string.Format("<a href=\"{0}\">Confirm Your Account</a>", confirmationLink);
                string plainTextContent = confirmationLink;

                SendGrid.Helpers.Mail.SendGridMessage message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

                SendGrid.Response response = await client.SendEmailAsync(message);

                TempData["EmailAddress"] = email;

                return(RedirectToAction("ConfirmationSent"));


                //Commenting this out: I'm not going to log the user in on registration anymore - I'm going to send them a confirmation email instead.
                //This authentication manager will create a cookie for the current user, and that cookie will be exchanged on each request until the user logs out
                //var authenticationManager = HttpContext.GetOwinContext().Authentication;
                //var userIdentity = await manager.CreateIdentityAsync(user, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie);
                //authenticationManager.SignIn(new Microsoft.Owin.Security.AuthenticationProperties() { }, userIdentity);
            }
            else
            {
                ViewBag.Error = result.Errors;
                return(View());
            }

            return(RedirectToAction("Index", "Home"));
        }
Exemplo n.º 9
0
 /// <summary>
 /// Install-Package SendGrid
 /// </summary>
 public void SendEmailViaApi(string emailSubject, string plainTextContent, string htmlContent, string senderEmail, string senderName, string receiverEmail, string receiverName)
 {
     var client = new SendGrid.SendGridClient(this._apikey);
     var from   = new SendGrid.Helpers.Mail.EmailAddress(senderEmail, senderName);
     var to     = new SendGrid.Helpers.Mail.EmailAddress(receiverEmail, receiverName);
     //var plainTextContent = "and easy to do anywhere, even with C#";
     //var htmlContent = "<strong>and easy to do anywhere, even with C#</strong>";
     var msg      = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, emailSubject, plainTextContent, htmlContent);
     var response = client.SendEmailAsync(msg).GetAwaiter().GetResult();
 }
Exemplo n.º 10
0
        protected virtual SendGridHelper.Mail.SendGridMessage PrepareMail(EmailRequest request)
        {
            var from = new SendGridHelper.Mail.EmailAddress(request.FromEmail.Email, request.FromEmail.Name);
            var to   = new List <SendGridHelper.Mail.EmailAddress>();

            request.To.ForEach(_ => {
                to.Add(new SendGridHelper.Mail.EmailAddress(request.FromEmail.Email, request.FromEmail.Name));
            });

            SendGridHelper.Mail.SendGridMessage msg = SendGridHelper.Mail.MailHelper.CreateSingleEmailToMultipleRecipients(from, to, request.Subject, request.Content, request.IsBodyHtml ? request.Content : string.Empty);

            request.Attachments?.ForEach(_ => {
                msg.AddAttachment(new SendGridHelper.Mail.Attachment()
                {
                    Content  = Convert.ToBase64String(_.Content),
                    Filename = _.Name,
                    Type     = _.Type
                });
            });

            return(msg);
        }
Exemplo n.º 11
0
        public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent)
        {
            var from    = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Coding Temple Golf");
            var to      = new SendGrid.Helpers.Mail.EmailAddress(recipient);
            var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);

            message.SetTemplateId("cfd4e7f3-abdd-437d-b5aa-5b1f987431c0");
            var mailResult = await _sendGridClient.SendEmailAsync(message);

            SendEmailResult result = new SendEmailResult();

            if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted))
            {
                //return new SendEmailResult
                //{
                //    Success = true
                //};
                result.Success = true;
            }
            else
            {
                //return new SendEmailResult
                var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body);
                result.Success = false;
                foreach (var error in badMailResponse["errors"])
                {
                    //Success = false,
                    //Message = await mailResult.Body.ReadAsStringAsync()
                    result.Errors.Add(new SendEmailResult.SendEmailError
                    {
                        Message = error.message,
                        Field   = error.field,
                        Help    = error.help
                    });
                }
            }

            return(result);
        }
        public override Task SendAsync(MailMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            var oclient = new SG.SendGridClient(SmtpServer.ApiKey);

            var sgMessage = new SG.Helpers.Mail.SendGridMessage();

            var from = new SG.Helpers.Mail.EmailAddress();

            sgMessage.Subject     = message.Subject;
            sgMessage.HtmlContent = message.Body;

            if (message.From != null)
            {
                sgMessage.From = new SG.Helpers.Mail.EmailAddress(message.From.Address, message.From.DisplayName);
            }
            else
            {
                sgMessage.From = new SG.Helpers.Mail.EmailAddress(DefaultFromEmail, DefaultFromName);
            }

            if (message.Attachments != null & message.Attachments.Count > 0)
            {
                foreach (var attachment in message.Attachments)
                {
                    using (var reader = new System.IO.StreamReader(attachment.ContentStream))
                    {
                        string contentDisposition = null;
                        string contentType        = null;

                        if (attachment.ContentDisposition != null)
                        {
                            contentDisposition = attachment.ContentDisposition.DispositionType;
                        }

                        if (attachment.ContentType != null)
                        {
                            contentType = attachment.ContentType.Name;
                        }

                        sgMessage.AddAttachment(attachment.Name, reader.ReadToEnd(), contentType, contentDisposition, attachment.ContentId);
                    }
                }
            }

            foreach (var to in message.To)
            {
                sgMessage.AddTo(to.Address, to.DisplayName);
            }

            foreach (var cc in message.CC)
            {
                sgMessage.AddCc(cc.Address, cc.DisplayName);
            }

            foreach (var bcc in message.Bcc)
            {
                sgMessage.AddBcc(bcc.Address, bcc.DisplayName);
            }

            return(oclient.SendEmailAsync(sgMessage));
        }