Пример #1
0
        public async Task <IActionResult> Index(CheckoutViewModel model, string braintreeNonce)
        {
            ViewData["clientToken"] = await _braintreeGateway.ClientToken.GenerateAsync();

            if (string.IsNullOrEmpty(braintreeNonce))
            {
                this.ModelState.AddModelError("nonce", "We're unable to validate this credit card");
            }


            var message = new SendGrid.Helpers.Mail.SendGridMessage
            {
                From = new SendGrid.Helpers.Mail.EmailAddress(
                    "*****@*****.**",
                    "No-Reply"),
                //Subject = "Receipt for order #" + order.ID,
                HtmlContent = "Thanks for your order!"
            };

            message.AddTo(model.ContactEmail);

            await _emailSender.SendEmailAsync(model.ContactEmail, "Receipt for order #", "Thanks for your order!");;


            return(RedirectToAction("index", "receipt"));
        }
Пример #2
0
        // Use NuGet to install SendGrid (Basic C# client lib)
        private async Task ConfigSendGridAsync(IdentityMessage message)
        {
            var myMessage = new SendGrid.Helpers.Mail.SendGridMessage();

            myMessage.AddTo(message.Destination);
            myMessage.From = new SendGrid.Helpers.Mail.EmailAddress(
                ConfigurationManager.AppSettings["mailSenderAddress"],
                ConfigurationManager.AppSettings["mailSenderName"]);
            myMessage.Subject     = message.Subject;
            myMessage.HtmlContent = message.Body;

            //var credentials = new NetworkCredential(
            //           ConfigurationManager.AppSettings["mailAccount"],
            //           ConfigurationManager.AppSettings["mailPassword"]
            //           );

            // Create a SendGrid client for sending email.
            var client = new SendGridClient(ConfigurationManager.AppSettings["mailSendGridApiKey"]);

            // Send the email.
            if (client != null)
            {
                await client.SendEmailAsync(myMessage);
            }
            else
            {
                Trace.TraceError("Failed to create Web transport.");
                await Task.FromResult(0);
            }
        }
Пример #3
0
        public void SendMessageTest()
        {
            SendGrid.Helpers.Mail.SendGridMessage message = null;
            var sendgridClient = new Mock <SendGrid.ISendGridClient>();

            sendgridClient.Setup(x => x.SendEmailAsync(It.IsAny <SendGrid.Helpers.Mail.SendGridMessage>(), It.IsAny <System.Threading.CancellationToken>()))
            .Callback <SendGrid.Helpers.Mail.SendGridMessage, System.Threading.CancellationToken>((x, c) => message = x)
            .ReturnsAsync(It.IsAny <SendGrid.Response>());
            string ToAddress     = "*****@*****.**";
            string FromAddress   = "*****@*****.**";
            string Subject       = "Subject";
            string BodyHtml      = "<p>Body</p>";
            string BodyPlainText = "Body";

            var sendgridService = new HPD.Utilities.Email.SendGridEmailService(sendgridClient.Object);

            sendgridService.SendMessage(ToAddress, FromAddress, Subject, BodyHtml, BodyPlainText);
            var emailPersonalization = message.Personalizations.First();

            Assert.AreEqual(message.From.Email, FromAddress);
            Assert.AreEqual(emailPersonalization.Subject, Subject);
            Assert.AreEqual(message.Contents.Where(x => x.Type == "text/html").First().Value, BodyHtml);
            Assert.AreEqual(message.Contents.Where(x => x.Type == "text/plain").First().Value, BodyPlainText);
            Assert.AreEqual(emailPersonalization.Tos.First().Email, ToAddress);
        }
Пример #4
0
        public async Task <IActionResult> ForgotPassword(string email)
        {
            var user = await _signInManager.UserManager.FindByEmailAsync(email);

            if (user != null)
            {
                string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user);

                token = System.Net.WebUtility.UrlEncode(token);
                string     currentUrl = Request.GetDisplayUrl();
                System.Uri uri        = new Uri(currentUrl);
                string     resetUrl   = uri.GetLeftPart(UriPartial.Authority);
                resetUrl += "/account/resetpassword?id=" + token + "&email=" + email;

                SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                message.AddTo(email);
                message.Subject = "Your password reset token";
                message.SetFrom("*****@*****.**");
                message.AddContent("text/plain", resetUrl);
                message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl));
                message.SetTemplateId("189fec1e-6985-4cde-bc5f-4eaa90a21daa");

                await _sendGridClient.SendEmailAsync(message);
            }
            return(RedirectToAction("ForgotPasswordSent"));
        }
Пример #5
0
        public static void SendEmail(string emailToken, string from, string template, string[] to, string[] cc, string title, ILogger log)
        {
            log.LogInformation($"Sending email from {from} with title: {title}");

            SendGrid.SendGridClient client = new SendGrid.SendGridClient(emailToken);

            SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
            message.SetFrom(from);

            foreach (string item in to)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    message.AddTo(item);
                }
            }

            foreach (string item in cc)
            {
                if (!string.IsNullOrEmpty(item))
                {
                    message.AddCc(item);
                }
            }

            message.SetSubject($"GitHub Report: {title}");
            message.AddContent(MimeType.Html, template);

#if !DEBUG
            var emailResult = client.SendEmailAsync(message).GetAwaiter().GetResult();
#else
            File.WriteAllText("output.html", template);
#endif
        }
Пример #6
0
        public async Task <IActionResult> PasswordReset(string email)
        {
            var user = await _signInManager.UserManager.FindByEmailAsync(email);

            if (user != null)
            {
                string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user);

                token = System.Net.WebUtility.UrlEncode(token);

                string     currentUrl = Request.GetDisplayUrl();
                System.Uri uri        = new Uri(currentUrl);
                string     resetUrl   = uri.GetLeftPart(UriPartial.Authority);
                resetUrl += "/account/newpassword?id=" + token + "&email=" + email;

                SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                message.AddTo(email);
                message.Subject = "Your password reset token";
                message.SetFrom("*****@*****.**");
                message.AddContent("text/plain", resetUrl);
                message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl));
                await _sendGridClient.SendEmailAsync(message);
            }

            //return RedirectToAction("Reset Sent");
            return(View());
        }
Пример #7
0
        public async Task <IActionResult> ForgotPassword(string email)
        {
            var user = await _signInManager.UserManager.FindByEmailAsync(email);

            if (user != null)
            {
                string token = await _signInManager.UserManager.GeneratePasswordResetTokenAsync(user);

                token = System.Net.WebUtility.UrlEncode(token);
                //sending the password reset URL
                string currentUrl = Request.GetDisplayUrl(); // =>gets an URl for the user

                Uri uri = new Uri(currentUrl);               // => splits the URL Object into parts

                string resetUrl = uri.GetLeftPart(UriPartial.Authority);
                resetUrl += "/login/resetpassword?id=" + token + "&email=" + email; //=> the resetUrl needs to go to the Login controller.

                SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                message.AddTo(email);
                message.Subject = "Password Reset";                      // => this is the email Subject;
                message.SetFrom("*****@*****.**"); // => this is where it's comming from ;
                message.AddContent("text/plain", resetUrl);
                message.AddContent("text/html", string.Format("<a href=\"{0}\">{0}</a>", resetUrl));
                await _sendGridClient.SendEmailAsync(message);
            }


            return(RedirectToAction("Index", "Login"));
        }
Пример #8
0
        public async Task <ActionResult> Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                using (IdentityModels entities = new IdentityModels())
                {
                    var userStore = new UserStore <User>(entities);

                    var manager = new UserManager <User>(userStore);
                    manager.UserTokenProvider = new EmailTokenProvider <User>();

                    var user = new User()
                    {
                        UserName = model.EmailAddress,
                        Email    = model.EmailAddress
                    };

                    IdentityResult result = manager.Create(user, model.Password);

                    if (result.Succeeded)
                    {
                        User u = manager.FindByName(model.EmailAddress);

                        // Creates customer record in Braintree
                        string merchantId  = ConfigurationManager.AppSettings["Braintree.MerchantID"];
                        string publicKey   = ConfigurationManager.AppSettings["Braintree.PublicKey"];
                        string privateKey  = ConfigurationManager.AppSettings["Braintree.PrivateKey"];
                        string environment = ConfigurationManager.AppSettings["Braintree.Environment"];
                        Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey);
                        Braintree.CustomerRequest  customer  = new Braintree.CustomerRequest();
                        customer.CustomerId = u.Id;
                        customer.Email      = u.Email;

                        var r = await braintree.Customer.CreateAsync(customer);

                        string confirmationToken = manager.GenerateEmailConfirmationToken(u.Id);

                        string sendGridApiKey = ConfigurationManager.AppSettings["SendGrid.ApiKey"];

                        SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridApiKey);
                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.Subject = string.Format("Please confirm your account");
                        message.From    = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Will Mabrey");
                        message.AddTo(new SendGrid.Helpers.Mail.EmailAddress(model.EmailAddress));
                        SendGrid.Helpers.Mail.Content contents = new SendGrid.Helpers.Mail.Content("text/html", string.Format("<a href=\"{0}\">Confirm Account</a>", Request.Url.GetLeftPart(UriPartial.Authority) + "/MyAccount/Confirm/" + confirmationToken + "?email=" + model.EmailAddress));

                        message.AddContent(contents.Type, contents.Value);
                        SendGrid.Response response = await client.SendEmailAsync(message);

                        return(RedirectToAction("ConfirmSent"));
                    }
                    else
                    {
                        ModelState.AddModelError("EmailAddress", "Unable to register with this email address.");
                    }
                }
            }
            return(View(model));
        }
Пример #9
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"));
        }
Пример #10
0
        private static SendGrid.Helpers.Mail.SendGridMessage getSendGridMessage(EmailMessage message)
        {
            var m = new SendGrid.Helpers.Mail.SendGridMessage();

            SendGrid.Helpers.Mail.EmailAddress getAddress(EmailAddress address) =>
            new SendGrid.Helpers.Mail.EmailAddress(address.Address, name: address.DisplayName.Any() ? address.DisplayName : null);

            m.From = getAddress(message.From);
            // As of 12 September 2017 SendGrid does not support multiple reply-to addresses. See https://github.com/sendgrid/sendgrid-csharp/issues/339.
            var replyToAddress = message.ReplyToAddresses.SingleOrDefault();

            if (replyToAddress != null)
            {
                m.ReplyTo = getAddress(replyToAddress);
            }

            foreach (var i in message.ToAddresses.Select(getAddress))
            {
                m.AddTo(i);
            }
            foreach (var i in message.CcAddresses.Select(getAddress))
            {
                m.AddCc(i);
            }
            foreach (var i in message.BccAddresses.Select(getAddress))
            {
                m.AddBcc(i);
            }

            m.Subject = message.Subject;

            foreach (var i in message.CustomHeaders)
            {
                m.AddHeader(i.Item1, i.Item2);
            }

            m.PlainTextContent = htmlToPlainText(message.BodyHtml);
            m.HtmlContent      = message.BodyHtml;

            foreach (var i in message.Attachments)
            {
                if (i.Stream == null)
                {
                    m.AddAttachment(Path.GetFileName(i.FilePath), Convert.ToBase64String(File.ReadAllBytes(i.FilePath)));
                }
                else
                {
                    using (var stream = new MemoryStream()) {
                        i.Stream.CopyTo(stream);
                        m.AddAttachment(i.AttachmentDisplayName, Convert.ToBase64String(stream.ToArray()));
                    }
                }
            }

            return(m);
        }
        public Task SendAsync(IdentityMessage message)
        {
            string sendGridApiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"];

            SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridApiKey);
            SendGrid.Helpers.Mail.SendGridMessage sendgridMessage = new SendGrid.Helpers.Mail.SendGridMessage();
            sendgridMessage.AddTo(message.Destination);
            sendgridMessage.Subject = message.Subject;
            sendgridMessage.SetFrom("*****@*****.**", "WeirdEnsemble.com Administrator");
            sendgridMessage.AddContent("text/html", message.Body);
            sendgridMessage.SetTemplateId("9f449d8f-c608-4336-9cbf-8a73ca391f3e");
            return(client.SendEmailAsync(sendgridMessage));
        }
Пример #12
0
        public async Task SendDocLinkAsync(string id, string reciver, string fileAccessToken, string callbackUrl)
        {
            var message = new SendGrid.Helpers.Mail.SendGridMessage()
            {
                Subject          = "Udostępniony dokument",
                HtmlContent      = $"{callbackUrl}/{reciver}/shared/{id}?fileAccessToken={HttpUtility.UrlEncode(fileAccessToken)}",
                PlainTextContent = $"{callbackUrl}/{reciver}/shared/{id}?fileAccessToken={HttpUtility.UrlEncode(fileAccessToken)}",
                From             = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**")
            };

            message.AddTo(reciver);

            await _sendGridClient.SendEmailAsync(message);
        }
Пример #13
0
        public async Task SendPasswordResetAsync(string token, string reciver, string callbackUrl)
        {
            var message = new SendGrid.Helpers.Mail.SendGridMessage()
            {
                Subject          = "Resetowanie hasła",
                HtmlContent      = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}",
                PlainTextContent = $"{callbackUrl}/{reciver}/?token={HttpUtility.UrlEncode(token)}",
                From             = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**")
            };

            message.AddTo(reciver);

            await _sendGridClient.SendEmailAsync(message);
        }
Пример #14
0
        public async Task <IActionResult> Register(string username, string password)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser {
                    Email = username, UserName = username
                };
                newUser.UserName = username;
                newUser.Email    = username;
                var userResult = await _signInManager.UserManager.CreateAsync(newUser);

                if (userResult.Succeeded)
                {
                    var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password);

                    if (passwordResult.Succeeded)
                    {
                        //TODO: Send a user a message thanking them for registering.
                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(username);
                        message.Subject = "Welcome to InnvoTech";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Thanks for registering as " + username + " on InnvoTech!");
                        message.AddContent("text/html", "Thanks for registering as " + username + " on InnvoTech!");
                        message.SetTemplateId("701c49d4-0931-4dd2-9c44-2ca93ad7f00e");
                        await _sendGridClient.SendEmailAsync(message);

                        await _signInManager.SignInAsync(newUser, false);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        await _signInManager.UserManager.DeleteAsync(newUser);
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #15
0
        public async Task SendRegisterConfirm(string token, string reciver, string callbackUrl)
        {
            var message = new SendGrid.Helpers.Mail.SendGridMessage()
            {
                Subject          = "Potwierdzenie rejestracji",
                HtmlContent      = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}",
                PlainTextContent = $"{callbackUrl}/{reciver}?token={HttpUtility.UrlEncode(token)}",
                From             = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**")
            };

            message.AddTo(reciver);

            await _sendGridClient.SendEmailAsync(message);
        }
Пример #16
0
        public Task SendEmail(string emailTo, string subject, string message)
        {
            _logger.LogInformation($"##Start## Sending email via SendGrid to: {emailTo} subject: {subject} message: {message}");
            var client          = new SendGrid.SendGridClient(_emailServiceOptions.RemoteServerAPI);
            var sendGridMessage = new SendGrid.Helpers.Mail.SendGridMessage {
                From = new SendGrid.Helpers.Mail.EmailAddress(_emailServiceOptions.UserId)
            };

            sendGridMessage.AddTo(emailTo);
            sendGridMessage.Subject     = subject;
            sendGridMessage.HtmlContent = message;
            client.SendEmailAsync(sendGridMessage);
            return(Task.CompletedTask);
        }
Пример #17
0
        public Task SendEmail(string emailTo, string subject, string message)
        {
            _logger.LogInformation($"##Start## Wysyłanie wiadomości e-mail za pomocą usługi SendGrid do:{emailTo} temat:{subject} wiadomość:{message}");
            var client          = new SendGrid.SendGridClient(_emailServiceOptions.RemoteServerAPI);
            var sendGridMessage = new SendGrid.Helpers.Mail.SendGridMessage
            {
                From = new SendGrid.Helpers.Mail.EmailAddress(_emailServiceOptions.UserId)
            };

            sendGridMessage.AddTo(emailTo);
            sendGridMessage.Subject     = subject;
            sendGridMessage.HtmlContent = message;
            client.SendEmailAsync(sendGridMessage);             // wysłanie mail'a
            return(Task.CompletedTask);
        }
Пример #18
0
        public async Task <IActionResult> Register(string email, string username, string password)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser();
                newUser.Email    = email;
                newUser.UserName = username;
                var userResult = await _signInManager.UserManager.CreateAsync(newUser);

                if (userResult.Succeeded)
                {
                    var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password);

                    if (passwordResult.Succeeded)
                    {
                        //SendGrid.SendGridClient sendGridClient = new SendGrid.SendGridClient("api_key");
                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(email);
                        message.Subject = "Welcome to the Sound Store!";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Thanks for registering " + username + " on Sound Store!");
                        message.AddContent("text/html", "Thanks for registering " + username + " on Sound Store!");
                        message.SetTemplateId("7610f02c-135a-4a53-844f-ccc2003ee5a8");
                        await _sendGridClient.SendEmailAsync(message);

                        await _signInManager.SignInAsync(newUser, false);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        await _signInManager.UserManager.DeleteAsync(newUser);
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #19
0
        public async Task <IActionResult> Register(string username, string password)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser {
                    UserName = username, Email = username
                };

                var userResult = await _signInManager.UserManager.CreateAsync(newUser);

                if (userResult.Succeeded)
                {
                    var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password);

                    if (passwordResult.Succeeded)
                    {
                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(username);
                        message.Subject = "Welcome to Layman Finance!";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Welcome to LaymanFinance, " + username + ". Get ready to take control of your finances.");
                        await _sendGridClient.SendEmailAsync(message);

                        await _signInManager.SignInAsync(newUser, isPersistent : false);

                        return(RedirectToAction("Index", "Account"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        await _signInManager.UserManager.DeleteAsync(newUser);
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #20
0
        public Task SendAsync(IdentityMessage message)
        {
            string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"];

            SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey);

            SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage();
            mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress {
                Name = "LawDoggs", Email = "*****@*****.**"
            });
            mail.AddTo(message.Destination);
            mail.Subject = message.Subject;
            mail.AddContent("text/plain", message.Body);
            mail.AddContent("text/html", message.Body);

            return(client.SendEmailAsync(mail));
        }
Пример #21
0
        public async Task <IActionResult> Register(string username, string password)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser {
                    Email = username, UserName = username
                };
                var userResult = await _signInManager.UserManager.CreateAsync(newUser);

                if (userResult.Succeeded)
                {
                    var passwordResult = await _signInManager.UserManager.AddPasswordAsync(newUser, password);

                    if (passwordResult.Succeeded)
                    {
                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(username);
                        message.Subject = "Email Confirmation for RADZONE.xyz";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Thank you, " + username + " for signing up for RADZONE.xyz!");
                        await _sendGridClient.SendEmailAsync(message);


                        await _signInManager.SignInAsync(newUser, false);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        await _signInManager.UserManager.DeleteAsync(newUser);
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #22
0
        public async Task <IActionResult> Register(string username, string password)
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser {
                    UserName = username, Email = username
                };
                var userResult = _signInManager.UserManager.CreateAsync(newUser).Result;
                if (userResult.Succeeded)
                {
                    var passwordResult = _signInManager.UserManager.AddPasswordAsync(newUser, password).Result;
                    if (passwordResult.Succeeded)
                    {
                        _signInManager.SignInAsync(newUser, false).Wait();

                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(username);
                        message.Subject = "Welcome to School Store";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Thanks for registering as " + username + " on SchoolStore!");
                        await _sendGridClient.SendEmailAsync(message);



                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        _signInManager.UserManager.DeleteAsync(newUser).Wait();
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #23
0
        public IActionResult Register(string username, string password, string email)  // add Task<IActionResult> and add mark code await where there is .Result and .wait();
        {
            if (ModelState.IsValid)
            {
                ApplicationUser newUser = new ApplicationUser(username);
                newUser.Email = email;
                var userResult = _signInManager.UserManager.CreateAsync(newUser).Result;
                if (userResult.Succeeded)
                {
                    var passwordResult = _signInManager.UserManager.AddPasswordAsync(newUser, password).Result;
                    if (passwordResult.Succeeded)
                    {
                        //TODO: Send a user a message thanking them for creating an account;

                        SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                        message.AddTo(email);
                        message.Subject = "Welcome to CompiFuture Electronics";
                        message.SetFrom("*****@*****.**");
                        message.AddContent("text/plain", "Thank you for registering  " + username + " on CompiFuture!");
                        _sendGridClient.SendEmailAsync(message);

                        _signInManager.SignInAsync(newUser, false).Wait(); // changed the register method to: RegisterAsync
                        return(RedirectToAction("Welcome", "Home"));
                    }
                    else
                    {
                        foreach (var error in passwordResult.Errors)
                        {
                            ModelState.AddModelError(error.Code, error.Description);
                        }
                        _signInManager.UserManager.DeleteAsync(newUser).Wait();
                    }
                }
                else
                {
                    foreach (var error in userResult.Errors)
                    {
                        ModelState.AddModelError(error.Code, error.Description);
                    }
                }
            }
            return(View());
        }
Пример #24
0
        public async Task <ActionResult> ForgotPassword(ForgotPasswordViewModel model)
        {
            if (ModelState.IsValid)
            {
                using (IdentityModels entities = new IdentityModels())
                {
                    var userStore = new UserStore <User>(entities);
                    var manager   = new UserManager <User>(userStore);

                    manager.UserTokenProvider = new EmailTokenProvider <User>();

                    var user = manager.FindByName(model.Email);
                    // If user has to activate his email to confirm his account, the use code listing below
                    //if (user == null || !(await UserManager.IsEmailConfirmedAsync(user.Id)))
                    //{
                    //    return Ok();
                    //}


                    string code = await manager.GeneratePasswordResetTokenAsync(user.Id);


                    string sendGridKey             = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"];
                    SendGrid.SendGridClient client = new SendGrid.SendGridClient(sendGridKey);
                    SendGrid.Helpers.Mail.SendGridMessage message = new SendGrid.Helpers.Mail.SendGridMessage();
                    message.Subject = string.Format("Reset Password");
                    message.From    = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Will Mabrey");
                    message.AddTo(new SendGrid.Helpers.Mail.EmailAddress(model.Email));

                    SendGrid.Helpers.Mail.Content contents = new SendGrid.Helpers.Mail.Content("text/html", string.Format("<a href=\"{0}\">Reset Password</a>", Request.Url.GetLeftPart(UriPartial.Authority) + "/MyAccount/ResetPassword/" + code + "?EmailAddress=" + model.Email));

                    message.AddContent(contents.Type, contents.Value);
                    SendGrid.Response response = await client.SendEmailAsync(message);

                    //await client.SendEmailAsync(user.Id, "Reset Password", $"Please reset your password by using this {code}");
                    return(RedirectToAction("ResetSent"));
                }
            }
            return(View());

            // If we got this far, something failed, redisplay form
        }
Пример #25
0
        public Task SendEmailAsync(string email, string subject, string message)
        {
            SendGrid.SendGridClient client = new SendGrid.SendGridClient(_apiKey);
            var msg = new SendGrid.Helpers.Mail.SendGridMessage()
            {
                From = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "The Game Vault Admin"),
                Subject = subject,
                PlainTextContent = message,
                HtmlContent = message
            };

            msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress(email));

            msg.TrackingSettings = new SendGrid.Helpers.Mail.TrackingSettings
            {
                ClickTracking = new SendGrid.Helpers.Mail.ClickTracking { Enable = false }
            };

            return client.SendEmailAsync(msg);
        }
Пример #26
0
        public override async Task SendAsync(MailMessage message)
        {
            var oclient = new SG.SendGridClient(SmtpServer.ApiKey);

            var sgMessage = new SG.Helpers.Mail.SendGridMessage()
            {
                From = new SG.Helpers.Mail.EmailAddress()
                {
                    Email = DefaultFromEmail
                },
                Subject     = message.Subject,
                HtmlContent = message.Body
            };

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

            await oclient.SendEmailAsync(sgMessage);
        }
Пример #27
0
        public Task SendAsync(IdentityMessage message)
        {
            string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"];

            SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey);

            SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage();
            mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress {
                Name = "BeerPack Admin", Email = "*****@*****.**"
            });
            mail.AddTo(message.Destination);
            mail.SetSubject(message.Subject);
            mail.AddContent("text/plain", message.Body);
            mail.AddContent("text/html", message.Body);
            //Set this to a template ID generated from your SendGrid transactional Email Templates
            mail.SetTemplateId("356743ee-55be-4531-9be3-d4b116b50c16");

            mail.AddSubstitution("<%copyright%>", string.Format("©{0} BeerPack", DateTime.Now.Year.ToString()));

            return(client.SendEmailAsync(mail));
        }
Пример #28
0
        public Task SendAsync(IdentityMessage message)
        {
            string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.Key"];

            SendGrid.SendGridClient client = new SendGrid.SendGridClient(apiKey);

            SendGrid.Helpers.Mail.SendGridMessage mail = new SendGrid.Helpers.Mail.SendGridMessage();
            mail.SetFrom(new SendGrid.Helpers.Mail.EmailAddress {
                Name = "PAA Admin", Email = "*****@*****.**"
            });
            mail.AddTo(message.Destination);
            mail.SetSubject(message.Subject);
            mail.AddContent("text/plain", message.Body);
            mail.AddContent("text/html", message.Body);
            //Set this to a template ID generated from your SendGrid transactional Email Templates
            mail.SetTemplateId("5e43d3e0-b987-4221-aede-c9c7a581c5d9");

            mail.AddSubstitution("<%copyright%>", string.Format("©{0} PAA", DateTime.Now.Year.ToString()));

            return(client.SendEmailAsync(mail));
        }
Пример #29
0
        public Task SendAsync(IdentityMessage message)
        {
            string sendGridApiKey = System.Configuration.ConfigurationManager
                                    .AppSettings["SendGrid.ApiKey"];

            SendGrid.SendGridClient client =
                new SendGrid.SendGridClient(sendGridApiKey);

            SendGrid.Helpers.Mail.SendGridMessage sendgridMessage =
                new SendGrid.Helpers.Mail.SendGridMessage();

            sendgridMessage.AddTo(message.Destination);
            sendgridMessage.Subject = message.Subject;
            sendgridMessage.SetFrom("*****@*****.**", "Athena's Spider Administrator");

            sendgridMessage.AddContent("text/html", message.Body);

            sendgridMessage.SetTemplateId("eaf676b4-4d36-42f9-8961-de31f52ecfc3");

            return(client.SendEmailAsync(sendgridMessage));
        }
Пример #30
0
        public Task SendEmailAsync(string email, string subject, string message) //This comes from the IEmailSender.
        {
            SendGrid.SendGridClient client = new SendGrid.SendGridClient(_apikey);

            var msg = new SendGrid.Helpers.Mail.SendGridMessage()
            {
                From             = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Travel Bid admin"),
                Subject          = subject,
                PlainTextContent = message,
                HtmlContent      = message
            };

            msg.AddTo(new SendGrid.Helpers.Mail.EmailAddress(email));
            msg.TrackingSettings = new SendGrid.Helpers.Mail.TrackingSettings
            {
                ClickTracking = new SendGrid.Helpers.Mail.ClickTracking {
                    Enable = false
                }
            };

            return(client.SendEmailAsync(msg));
        }