Ejemplo n.º 1
0
        public async Task <ActionResult> Registration(RegistrationModel model)
        {
            if (ModelState.IsValid)
            {
                if (WebSecurity.UserExists(model.EmailAddress))
                {
                    ModelState.AddModelError("EmailAddress", "Username already in user");
                }
                else
                {
                    string confirmationToken = WebSecurity.CreateUserAndAccount(model.EmailAddress, model.Password, new { FirstName = model.FirstName, LastName = model.LastName }, true);
                    string confirmationUrl   = Request.Url.GetLeftPart(UriPartial.Authority) + "/Membership/Confirm?confirmationToken=" + confirmationToken;

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

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

                    Email   from    = new Email("*****@*****.**");
                    string  subject = "Confirm your new account";
                    Email   to      = new Email(model.EmailAddress);
                    Content content = new Content("text/html", string.Format("<a href=\"{0}\">Confirm</a>", confirmationUrl));

                    Mail mail = new Mail(from, subject, to, content);
                    mail.TemplateId = "ae484be0-14bc-45f2-a56c-6fa9c6704e31";
                    mail.Personalization[0].AddSubstitution("-link-", confirmationUrl);
                    var response = await client.client.mail.send.post(requestBody : mail.Get());

                    string message = await response.Body.ReadAsStringAsync();

                    return(RedirectToAction("ConfirmationSent"));
                }
            }
            return(View(model));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Email de bienvenida al registrarse un usuario en el gimnasio
        /// </summary>
        /// <param name="templatePath">Ruta de template a utilizar</param>
        /// <param name="email">Email del usuario a inyectar en template</param>
        /// <param name="pass">Password generada por el admin a inyectar en template</param>
        /// <returns></returns>
        private static async Task HelloEmail(string templatePath, string email, string pass)
        {
            String  apiKey = Environment.GetEnvironmentVariable("ENVIRONMENT_VARIABLE_SENDGRID_KEY");
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email  from    = new Email("*****@*****.**");
            String subject = "Bienvenido a AmosGym";
            Email  to      = new Email(email);

            Content content;

            if (string.IsNullOrEmpty(templatePath))
            {
                content = new Content("text/plain", "Te damos la bienvenida a AMOS Gym. Visita nuestro sitio web http://amosgym.azurewebsites.net/ para enterarte de las últimas novedades y personalizar tu información");
            }
            else
            {
                var emailTemplate = File.ReadAllText(templatePath);
                emailTemplate = emailTemplate.Replace("USER_REPLACE_TEXT", email)
                                .Replace("PASS_REPLACE_TEXT", pass);
                content = new Content("text/html", emailTemplate);
            }
            Mail mail = new Mail(from, subject, to, content);

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            var statusCode = (response.StatusCode);
            var result     = (response.Body.ReadAsStringAsync().Result);
            var headers    = (response.Headers.ToString());
            var get        = mail.Get();
        }
Ejemplo n.º 3
0
        public static void SendIkeaOrderReceived(Model.User user, string unitNumber, Model.IkeaProject project, string fileUrl, string orderId)
        {
            Task.Run(async() =>
            {
                // send email
                String apiKey = ConfigurationManager.AppSettings.Get("SendGridApiKey");
                dynamic sg    = new SendGrid.SendGridAPIClient(apiKey);

                Email from      = new Email("*****@*****.**", "JustLorry");
                String subject  = ConfigurationManager.AppSettings.Get("OrderReceivedSubject") + string.Format("(IKEA ORDER: {0})", project.name);
                Email to        = new Email("*****@*****.**", "JustLorry");
                Content content = new Content("text/html", subject);
                Mail mail       = new Mail(from, subject, to, content);

                mail.TemplateId = ConfigurationManager.AppSettings.Get("OrderReceivedTemplateId");
                mail.Personalization[0].AddSubstitution("{{orderId}}", orderId);
                mail.Personalization[0].AddSubstitution("{{name}}", user.displayName);
                mail.Personalization[0].AddSubstitution("{{contact}}", user.contactNumber);
                mail.Personalization[0].AddSubstitution("{{email}}", user.email);
                mail.Personalization[0].AddSubstitution("{{jobType}}", "IKEA PURCHASE & DELIVERY");
                mail.Personalization[0].AddSubstitution("{{downloadLink}}", fileUrl);

                string toAdd = string.Format("{0}, {1}, {2}, {3} {4}, {5}", unitNumber, project.address2, project.address3,
                                             project.postcode, project.state.name, project.country.name);
                mail.Personalization[0].AddSubstitution("{{to}}", toAdd);

                dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            });
        }
Ejemplo n.º 4
0
        private static void HelloEmail()
        {
            String  apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email   from    = new Email("*****@*****.**");
            String  subject = "Hello World from the SendGrid CSharp Library";
            Email   to      = new Email("*****@*****.**");
            Content content = new Content("text/plain", "Textual content");
            Mail    mail    = new Mail(from, subject, to, content);
            Email   email   = new Email("*****@*****.**");

            mail.Personalization[0].AddTo(email);

            String ret = mail.Get();

            string  requestBody = ret;
            dynamic response    = sg.client.mail.send.post(requestBody: requestBody);

            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine(ret);
            Console.ReadLine();
        }
Ejemplo n.º 5
0
        public override void HandleRequest(RequestContext context, NameValueCollection query)
        {
            var acc       = Database.GetAccount(Convert.ToInt32(query["a"]));
            var passToken = query["b"];

            // verify
            if (String.IsNullOrEmpty(passToken) || !acc.PassResetToken.Equals(passToken))
            {
                context.Respond(Program.Resources.ChangePass.GetResetErrorHtml());
                return;
            }

            // change password
            var password = CreatePassword(new Random().Next(8, 12));

            Database.ChangePassword(acc.UUID, password);

            // reset token
            acc.PassResetToken = "";
            acc.FlushAsync();

            // send email with pass
            var apikey  = Program.Config.serverSettings.sendGridApiKey;
            var sg      = new SendGrid.SendGridAPIClient(apikey);
            var from    = new Email("*****@*****.**", "Valor");
            var subject = "New Password on Valor";
            var to      = new Email(acc.UUID);
            var content = new Content("text/plain", Program.Resources.ChangePass.GetResetEmail(password));
            var mail    = new Mail(from, subject, to, content);

            sg.client.mail.send.post(requestBody: mail.Get());

            // return html page
            context.Respond(Program.Resources.ChangePass.GetResetHtml(password));
        }
Ejemplo n.º 6
0
        private async Task <bool> SendMessage(EmailCommunication email)
        {
            try
            {
                Mail mail = new Mail();
                mail.From    = new Email(email.Sender);
                mail.Subject = email.Subject;
                mail.AddContent(new Content("text/plain", email.Body));

                AddRecipients(email, mail);
                AddAttachments(email, mail);

                string type = Constants.MetaSettings.Types.Api;
                string code = Constants.MetaSettings.Codes.SendGridApiKey;

                IMetaSettingRepository settingRepository = _DataRepositoryFactory.GetDataRepository <IMetaSettingRepository>();
                string apiKey = settingRepository.GetSetting(type, code).Value;

                dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

                dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

                return(true);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
Ejemplo n.º 7
0
        private static async Task HelloEmail()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email from = new Email("*****@*****.**");
            String subject = "Hello World from the SendGrid CSharp Library";
            Email to = new Email("*****@*****.**");
            Content content = new Content("text/plain", "Textual content");
            Mail mail = new Mail(from, subject, to, content);
            Email email = new Email("*****@*****.**");
            mail.Personalization[0].AddTo(email);

            // If you want to use a transactional [template](https://sendgrid.com/docs/User_Guide/Transactional_Templates/index.html),
            // the following code will replace the above subject and content. The sample code assumes you have defined
            // substitution variables [KEY_1] and [KEY_2], to be replaced by VALUE_1 and VALUE_2 respectively, in your template.
            //mail.TemplateId = "TEMPLATE_ID";
            //mail.Personalization[0].AddSubstitution("[KEY_1]", "VALUE_1");
            //mail.Personalization[0].AddSubstitution("[KEY_2]", "VALUE_2");

            dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine(mail.Get());
            Console.ReadLine();

        }
Ejemplo n.º 8
0
        public ActionResult ForgotPassword(ForgotPasswordModel model)
        {
            string email      = model.EmailAddress;
            string resetToken = WebMatrix.WebData.WebSecurity.GeneratePasswordResetToken(model.EmailAddress);
            string resetUrl   = Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/CompleteForgotPassword?resetToken" + resetToken;


            string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];

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

            SendGrid.Helpers.Mail.Email from = new SendGrid.Helpers.Mail.Email("*****@*****.**");
            string subject = "Couture Events: Password Reset!";

            SendGrid.Helpers.Mail.Email to = new SendGrid.Helpers.Mail.Email(model.EmailAddress);

            Content content = new Content("text/html", " ");
            Mail    mail    = new Mail(from, subject, to, content);

            mail.TemplateId = "be1b809e-4cc5-425c-8b7e-cc9846b0777f";
            mail.Personalization[0].AddSubstitution("-token-", resetToken);
            mail.Personalization[0].AddSubstitution("-url-", resetUrl);

            client.client.mail.send.post(requestBody: mail.Get());
            return(RedirectToAction("Index", "Home"));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Campaña generada. Comunicacion masiva de emails
        /// </summary>
        /// <param name="template">Template con datos inyectados a utilizar</param>
        /// <param name="emails">Emails de usuarios a comunicar</param>
        /// <returns></returns>
        private static async Task CampaignEmail(string template, List <String> emails)
        {
            const string SUBJECT = "Comunicación de Amos Gym";

            String  apiKey = Environment.GetEnvironmentVariable("ENVIRONMENT_VARIABLE_SENDGRID_KEY");
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Content content = new Content("text/html", template);

            Email from = new Email("*****@*****.**");
            Email to   = new Email(emails[0]);

            Mail mail = new Mail(from, SUBJECT, to, content);

            if (emails.Count > 1)
            {
                for (int i = 1; i < emails.Count; i++)
                {
                    Email email = new Email(emails[i]);
                    mail.Personalization[0].AddTo(email);
                }
            }

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            var statusCode = (response.StatusCode);
            var result     = (response.Body.ReadAsStringAsync().Result);
            var headers    = (response.Headers.ToString());
            var get        = mail.Get();
        }
Ejemplo n.º 10
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (this.IsPostBack && this.email.Value != null)
            {
                var jsonSerializer = new JsonSerializer(Path.GetTempPath() + "\\SpielGutSicherungen");
                var benutzer       = jsonSerializer.LoadAllObjects <Benutzer>().FirstOrDefault(u => u.Email == this.email.Value);
                if (benutzer == null)
                {
                    // Fehlermeldung: Kein User zur email vorhanden
                    return;
                }

                var sendGrid = new SendGrid.SendGridAPIClient("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");
                var from     = new Email("*****@*****.**");

                var subject = "Passwort zurücksetzen SpielGut";
                var to      = new Email(this.email.Value);
                var content = new Content("text/html", "<h1>Passwort Vergessen?</h1>" +
                                          "<h2>Sie können Ihr Passwort unter folgendem <a href='http://" + HttpContext.Current.Request.Url.Authority + "/Forms/PasswortZuruecksetzen.aspx?u=" + benutzer.Id + "'>Link</a> zurücksetzen.</h2>");
                var mail = new Mail(from, subject, to, content);

                sendGrid.client.mail.send.post(requestBody: mail.Get());
            }
            else if (this.IsLoggedIn())
            {
                this.Response.Redirect("MeineAusleihen.aspx");
            }
        }
Ejemplo n.º 11
0
        public ActionResult Success(CheckOut checkout, int id)
        {
            //initialize variables for email
            string userName  = "";
            string userEmail = "";
            string gameName  = "";
            string gameDate  = "";
            string players   = "";
            string numTix    = "";

            //pull from database
            using (EscapeRoomDBEntities entities = new EscapeRoomDBEntities())
            {
                //get players and add info from form
                List <int?> list = entities.sp_basketPlayers(id).ToList();

                int i = 0;

                foreach (int?item in list)
                {
                    var player = entities.Players.Single(x => x.Id == item);
                    player.FirstName = checkout.Players[i].FirstName;
                    player.LastName  = checkout.Players[i].LastName;
                    player.Email     = checkout.Players[i].Email;
                    players         += player.FirstName + " " + player.LastName + ", ";
                    entities.SaveChanges();
                    i++;
                }

                //get basket and info for email info
                Basket basket = entities.Baskets.Single(x => x.ID == id);
                User   user   = entities.Users.Single(x => x.Id == basket.UserID);
                userName  = user.FirstName;
                userEmail = user.Email;
                numTix    = (i).ToString();
                gameName  = basket.Session.Title.ToString();
                gameDate  = basket.Session.Start.ToString();
                players   = players.Substring(0, players.Length - 2);
            }

            string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];

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

            SendGrid.Helpers.Mail.Email from = new SendGrid.Helpers.Mail.Email("*****@*****.**");
            string subject = "Your Super Fake Chicago Unlocked Tickets";

            SendGrid.Helpers.Mail.Email to = new SendGrid.Helpers.Mail.Email(userEmail);
            string emailContent            = string.Format("<html><body><p>{0}!</p><p>Thank you for purchasing {1} fake tickets to {2} on {3}. If this was not totally fake, we would also reach out to these players: {4}. This website is a work in progress for the purpose of experimenting with .Net technologies. Please let me know any feedback you have!</p> <a href='mailto:[email protected]? subject = ChicagoUnlocked'>Email Some Feedback</a></body></html>",
                                                           userName, numTix, gameName, gameDate, players);

            SendGrid.Helpers.Mail.Content content = new SendGrid.Helpers.Mail.Content("Text/html", emailContent);
            SendGrid.Helpers.Mail.Mail    mail    = new SendGrid.Helpers.Mail.Mail(from, subject, to, content);
            client.client.mail.send.post(requestBody: mail.Get());
            return(RedirectToAction("About", "Home"));
        }
        public async Task <ActionResult> Registration(RegistrationModel model)
        {
            if (ModelState.IsValid)
            {
                if (WebSecurity.UserExists(model.EmailAddress))
                {
                    ModelState.AddModelError("EmailAddress", "Username already in user");
                }
                else
                {
                    string confirmationToken = WebSecurity.CreateUserAndAccount(model.EmailAddress, model.Password, null, true);
                    string publicKey         = ConfigurationManager.AppSettings["Braintree.PublicKey"];
                    string privateKey        = ConfigurationManager.AppSettings["Braintree.PrivateKey"];
                    string environment       = ConfigurationManager.AppSettings["Braintree.Environment"];
                    string merchantId        = ConfigurationManager.AppSettings["Braintree.MerchantID"];


                    Braintree.BraintreeGateway braintree = new Braintree.BraintreeGateway(environment, merchantId, publicKey, privateKey);
                    Braintree.CustomerRequest  request   = new Braintree.CustomerRequest();
                    request.Email = model.EmailAddress;
                    using (MemberEntities1 entities = new MemberEntities1())
                    {
                        request.Id = entities.CustomerLists.Single(x => x.EmailAddress == model.EmailAddress).ID.ToString();
                    }
                    braintree.Customer.Create(request);



                    string confirmationUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "/Membership/Confirm?confirmationToken=" + confirmationToken;

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

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

                    Email   from    = new Email("*****@*****.**");
                    string  subject = "Confirm your new account";
                    Email   to      = new Email(model.EmailAddress);
                    Content content = new Content("text/html", string.Format("<a href=\"{0}\">Confirm</a>", confirmationUrl));

                    Mail mail = new Mail(from, subject, to, content);
                    mail.TemplateId = "00aaf54f-cf22-4cfe-98b5-b20d3cd72354";
                    mail.Personalization[0].AddSubstitution("-link-", confirmationUrl);
                    var response = await client.client.mail.send.post(requestBody : mail.Get());

                    string message = await response.Body.ReadAsStringAsync();

                    if (!string.IsNullOrEmpty(message))
                    {
                        throw new Exception(message);
                    }
                    return(RedirectToAction("ConfirmationSent"));
                }
            }
            return(View(model));
        }
Ejemplo n.º 13
0
        public async Task Notify(ToDo toDo, NotificationType notificationType)
        {
            var sg = new SendGrid.SendGridAPIClient(_apiKey);

            Email   from    = new Email("*****@*****.**");
            string  subject = string.Format("Todo NotificationType {1}", toDo.Id.ToString(), notificationType.ToString());
            Email   to      = new Email(toDo.AssignedTo);
            Content content = new Content("text/plain", string.Format("Task: {0}, zu erledigen bis: {1}", toDo.Task, toDo.DueDateTime.ToString()));
            Mail    mail    = new Mail(from, subject, to, content);

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());
        }
Ejemplo n.º 14
0
        public async Task <HttpStatusCode> SendNotification(string email, string subject, string template)
        {
            dynamic sg = new SendGrid.SendGridAPIClient(GetKey());

            Email   from    = new Email(ConfigurationManager.AppSettings["DomainEmail"], ConfigurationManager.AppSettings["DomainName"]);
            Email   to      = new Email(email);
            Content content = new Content("text/html", template);
            Mail    mail    = new Mail(from, subject, to, content);

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            return((HttpStatusCode)response.StatusCode);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Send Email To The Email Specified in To Email
        /// </summary>
        /// <param name="toMail"></param>
        /// <param name="subject"></param>
        /// <param name="messageBody"></param>
        /// <param name="CC"></param>
        /// <param name="BCC"></param>
        /// <returns></returns>
        /// <exception cref="System.ArgumentException">
        ///     Thrown if <paramref cref="subject,messageBody"/> is null or empty string
        /// </exception>
        //public static async Task SendEmail(string toMail, string subject, string messageBody, string filepath = null, string CC = "", string BCC = "", List<AttachmentInMail> listOfAttachment = null, string fromName = "iCat")
        //{
        //    //#if (!DEBUG)

        //    ValidateEmailParams(toMail, subject, messageBody);
        //    SmtpClient objSmptClient = null;
        //    MailMessage objMailMessage;
        //    try
        //    {
        //        byte[] buffer;
        //        string fileName = "";


        //        objSmptClient = new SmtpClient(MailInfo.SMTPSERVER, MailInfo.SMTPSERVERPORT);
        //        objSmptClient.EnableSsl = MailInfo.SMTPISSSL;
        //        objSmptClient.Credentials = new System.Net.NetworkCredential(MailInfo.SMTPUSERNAME, MailInfo.SMTPPASSWORD);
        //        objMailMessage = new MailMessage(MailInfo.FROMEMAILADDRESS, toMail, subject, messageBody);
        //        if (!string.IsNullOrWhiteSpace(fromName))
        //            objMailMessage.From = new MailAddress(MailInfo.FROMEMAILADDRESS, fromName);

        //        if (listOfAttachment != null)
        //        {
        //            foreach (var item in listOfAttachment)
        //            {
        //                buffer = item.byteArray;
        //                fileName = item.name;

        //                System.Net.Mime.ContentType a = new System.Net.Mime.ContentType();
        //                a.Name = item.contenttype != "" ? item.contenttype : "";

        //                MemoryStream stream = new MemoryStream(item.byteArray);
        //                if (a.Name != "")
        //                {
        //                    Attachment objAttachment = null;
        //                    ContentDisposition objContentDisposition = null;
        //                    objAttachment = new Attachment(stream, fileName, a.Name);
        //                    objContentDisposition = objAttachment.ContentDisposition;
        //                    objMailMessage.Attachments.Add(objAttachment);

        //                }
        //                else
        //                {
        //                    objMailMessage.Attachments.Add(new Attachment(stream, fileName));
        //                }
        //            }
        //        }
        //        //if ToCC is not null and empty
        //        if (CC.IsNotNullOrEmpty())
        //        {
        //            foreach (var address in CC.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
        //            {
        //                objMailMessage.CC.Add(address);
        //            }

        //        }
        //        //if ToBCC is not null and empty
        //        if (BCC.IsNotNullOrEmpty())
        //        {
        //            foreach (var address in BCC.Split(new[] { ";" }, StringSplitOptions.RemoveEmptyEntries))
        //            {
        //                objMailMessage.Bcc.Add(address);
        //            }

        //        }

        //        //Specify that body is html type
        //        objMailMessage.IsBodyHtml = true;

        //        if (!string.IsNullOrWhiteSpace(filepath))
        //        {

        //            Attachment objAttachment = null;
        //            ContentDisposition objContentDisposition = null;
        //            objAttachment = new Attachment(filepath, "text/calendar");
        //            objContentDisposition = objAttachment.ContentDisposition;
        //            objMailMessage.Attachments.Add(objAttachment);
        //        }
        //        try
        //        {
        //            objSmptClient.Send(objMailMessage);
        //        }
        //        catch (Exception ex)
        //        {
        //            //WriteException.WriteExceptionInFile(ex.ToString());
        //            //throw ex;
        //        }

        //    }
        //    catch (Exception ex)
        //    {
        //        //WriteException.WriteExceptionInFile(ex.ToString());
        //        //return false;
        //    }

        //    //#else
        //    //return true;
        //    //#endif
        //}
        public static async Task SendEmail(string toMail, string subject, string messageBody, string filepath = null, string CC = "", string BCC = "", List <AttachmentInMail> listOfAttachment = null, string fromName = "ICat")
        {
            String  apiKey = MailInfo.SENDGRIDAPIKEY;
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email   from    = new Email(MailInfo.FROMEMAILADDRESS);
            Email   to      = new Email(toMail);
            Content content = new Content("text/html", messageBody);
            Mail    mail    = new Mail(from, subject, to, content);
            // Email email = new Email("*****@*****.**", fromName);
            // mail.Personalization[0].AddTo(email);
            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());
        }
Ejemplo n.º 16
0
        public async Task <HttpStatusCode> SendEmailsContacts(List <ContactsModel> contacts, string username)
        {
            dynamic sg = new SendGrid.SendGridAPIClient(GetKey());

            var             mail = new Mail();
            Personalization personalization;

            foreach (var contact in contacts)
            {
                personalization = new Personalization();
                Email to = new Email();

                if (!string.IsNullOrEmpty(contact.Name))
                {
                    to.Name = contact.Name;
                }
                else
                {
                    var atIndex = contact.Email.IndexOf('@');
                    to.Name = contact.Email.Substring(0, atIndex);
                }
                to.Address = contact.Email;
                personalization.AddTo(to);
                personalization.AddSubstitution("%invited%", to.Name);
                personalization.AddSubstitution("%username%", username);
                //personalization.AddCustomArgs("marketing", "false");
                //personalization.AddCustomArgs("transactional", "true");
                mail.AddPersonalization(personalization);
            }

            var body = @"
			<p>
			Hello %invited%,
			</p>
			<p>&nbsp;</p>
			<p>
			Your friend %username%, has invited you to join him on our community.
			</p>"            ;

            mail.AddContent(new Content("text/html", body));
            mail.From    = new Email(ConfigurationManager.AppSettings["DomainEmail"], ConfigurationManager.AppSettings["DomainName"]);
            mail.Subject = "%invited%, special Invitation to join";

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            return((HttpStatusCode)response.StatusCode);
            //System.Diagnostics.Trace.WriteLine(response.Body.ReadAsStringAsync().Result);
            //System.Diagnostics.Trace.WriteLine(response.Headers.ToString());
            //System.Diagnostics.Trace.WriteLine(mail.Get());
        }
Ejemplo n.º 17
0
        private void HandlePostRequests()
        {
            this.Fehlermeldungen.CollectionChanged   += this.AktualisiereFehlermeldungen;
            this.FehlermeldungsWiederholer.DataSource = this.Fehlermeldungen;

            var adresse = new Address(
                this.postleitzahl.Value,
                this.ort.Value,
                this.strasse.Value
                );

            var benutzer = new Benutzer(
                this.vorname.Value,
                this.nachname.Value,
                this.email.Value,
                new PasswordHasher().HashPassword(this.passwort.Value),
                this.passwortwiderholen.Value,
                adresse,
                this.telefonnummer.Value
                );

            var errorMsgs = BenutzerValidator.Validate(benutzer);

            errorMsgs.AddRange(PasswortValidator.Validate(this.passwort.Value, this.passwortwiderholen.Value));


            if (errorMsgs.Count == 0)
            {
                var jsonSerializer = new JsonSerializer(Path.GetTempPath() + "\\SpielGutSicherungen");
                jsonSerializer.SaveObject(benutzer);

                var sendGrid = new SendGrid.SendGridAPIClient("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");
                var from     = new Email("*****@*****.**");

                var subject = "Account registration SpielGut";
                var to      = new Email(benutzer.Email);
                var content = new Content("text/html", "<h1>Danke, dass Sie sich bei SpielGut registriert haben.</h1>" +
                                          "<h2>Um die Registration abzuschliessen, bestätigen Sie bitte Ihren Account " +
                                          "unter folgendem <a href='http://" + HttpContext.Current.Request.Url.Authority + "/Forms/AccountBestaetigen.aspx?u=" + benutzer.Id +
                                          "'>Link</a>.</h2>");
                var mail = new Mail(from, subject, to, content);

                sendGrid.client.mail.send.post(requestBody: mail.Get());
                this.Response.Redirect("MeineAusleihen.aspx");
            }
            else
            {
                errorMsgs.ForEach(f => this.Fehlermeldungen.Add(f));
            }
        }
Ejemplo n.º 18
0
        public ActionResult Register(CustomerModel model)
        {
            if (ModelState.IsValid)
            {
                if (WebMatrix.WebData.WebSecurity.UserExists(model.Email))
                {
                    ModelState.AddModelError("Email", "Could not create a user with this email address");
                }
                else
                {
                    string token = WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.Email, model.Password,
                                                                                      new
                    {
                        ID                  = model.ID,
                        BrideFirstName      = model.BrideFirstName,
                        BrideLastName       = model.BrideFirstName,
                        GroomFirstName      = model.GroomFirstName,
                        GroomLastName       = model.GroomFirstName,
                        Email               = model.Email,
                        PhoneNumber         = model.PhoneNumber,
                        Address             = model.Address,
                        City                = model.City,
                        WeddingDate         = model.WeddingDate,
                        NumberOfGuests      = model.NumberOfGuests,
                        NumberOfGroomsmen   = model.NumberOfGroomsmen,
                        NumberOfBridesmaids = model.NumberOfBridesmaids,
                        Password            = model.Password
                    }, true);

                    string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];
                    SendGrid.SendGridAPIClient client = new SendGrid.SendGridAPIClient(apiKey);

                    SendGrid.Helpers.Mail.Email from = new SendGrid.Helpers.Mail.Email("*****@*****.**");
                    string subject = "Couture Events Account Verification";
                    SendGrid.Helpers.Mail.Email to = new SendGrid.Helpers.Mail.Email(model.Email);
                    Content content = new Content("text/html", "emailContent");

                    string emailContent = string.Format("<html><head><body><a href=\"{0}\"Complete your registration </body></head></html>", Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/RegistrationComplete/" + HttpUtility.UrlEncode(token) + "?email=" + model.Email);
                    Mail   mail         = new Mail(from, subject, to, content);

                    client.client.mail.send.post(requestBody: mail.Get());



                    return(RedirectToAction("RegistrationComplete"));
                }
            }
            return(View(model));
        }
Ejemplo n.º 19
0
        public static void SendOrderReceived(string jobId, Model.User user,
                                             Model.JobDetails jobDetails, string fleetType, string jobType)
        {
            Task.Run(async() =>
            {
                // send email
                String apiKey = ConfigurationManager.AppSettings.Get("SendGridApiKey");
                dynamic sg    = new SendGrid.SendGridAPIClient(apiKey);

                Email from      = new Email("*****@*****.**", "JustLorry");
                String subject  = ConfigurationManager.AppSettings.Get("InvoiceSubject") + string.Format("(Payment received. Order ID: {0})", jobId);
                Email to        = new Email("*****@*****.**", "JustLorry");
                Content content = new Content("text/html", subject);
                Mail mail       = new Mail(from, subject, to, content);

                mail.TemplateId = ConfigurationManager.AppSettings.Get("InvoiceTemplateId");
                mail.Personalization[0].AddSubstitution("{{orderId}}", jobId);
                mail.Personalization[0].AddSubstitution("{{name}}", user.displayName);
                mail.Personalization[0].AddSubstitution("{{contact}}", user.contactNumber);
                mail.Personalization[0].AddSubstitution("{{email}}", user.email);
                mail.Personalization[0].AddSubstitution("{{date}}", jobDetails.deliveryDate);
                mail.Personalization[0].AddSubstitution("{{jobType}}", jobType);
                mail.Personalization[0].AddSubstitution("{{fleetType}}", fleetType);
                mail.Personalization[0].AddSubstitution("{{amount}}", jobDetails.amount.ToString());
                mail.Personalization[0].AddSubstitution("{{paymentLink}}", "");

                var addressFrom = jobDetails.addressFrom[0];
                mail.Personalization[0].AddSubstitution("{{from}}", addressFrom.address1 + ", " + addressFrom.address2 + ", " + addressFrom.address3);

                try
                {
                    var addressTo = jobDetails.addressTo[0];
                    if (addressTo != null)
                    {
                        mail.Personalization[0].AddSubstitution("{{to}}", addressTo.address1 + ", " + addressTo.address2 + ", " + addressTo.address3);
                    }
                }
                catch (Exception)
                {
                    mail.Personalization[0].AddSubstitution("{{to}}", "");
                }

                dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            });
        }
Ejemplo n.º 20
0
        private static void HelloEmail()
        {
            var     apiKey = "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";
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            var     from        = new Email("*****@*****.**");
            var     subject     = "Hello World!";
            var     to          = new Email("*****@*****.**");
            var     content     = new Content("text/plain", "What a wonderful world!");
            var     mail        = new Mail(from, subject, to, content);
            var     requestBody = mail.Get();
            dynamic response    = sg.client.mail.send.post(requestBody: requestBody);

            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());
            Console.ReadLine();
        }
Ejemplo n.º 21
0
        public static void SendOrderConfirmed(string jobUniqueId, Model.User user,
                                              Model.JobDetails jobDetails, Model.User driver, Model.Fleet fleet, Model.JobType jobType, Model.FleetType fleetType)
        {
            Task.Run(async() =>
            {
                String apiKey = ConfigurationManager.AppSettings.Get("SendGridApiKey");
                dynamic sg    = new SendGrid.SendGridAPIClient(apiKey);

                Email from      = new Email("*****@*****.**");
                String subject  = ConfigurationManager.AppSettings.Get("ConfirmSubject") + string.Format("(Order ID: {0})", jobUniqueId);
                Email to        = new Email(user.email);
                Content content = new Content("text/html", subject);
                Mail mail       = new Mail(from, subject, to, content);

                mail.TemplateId = ConfigurationManager.AppSettings.Get("ConfirmTemplateId");
                mail.Personalization[0].AddSubstitution("{{orderId}}", jobUniqueId);
                mail.Personalization[0].AddSubstitution("{{date}}", jobDetails.deliveryDate);
                mail.Personalization[0].AddSubstitution("{{jobType}}", jobType.name);
                mail.Personalization[0].AddSubstitution("{{fleetType}}", fleetType.name);
                mail.Personalization[0].AddSubstitution("{{amount}}", jobDetails.amount.ToString());
                mail.Personalization[0].AddSubstitution("{{driver}}", driver.displayName);
                mail.Personalization[0].AddSubstitution("{{driverContact}}", driver.contactNumber);
                mail.Personalization[0].AddSubstitution("{{driverIdentification}}", driver.identityCard);
                mail.Personalization[0].AddSubstitution("{{fleetRegistration}}", fleet.registrationNumber);

                var addressFrom = jobDetails.addressFrom[0];
                mail.Personalization[0].AddSubstitution("{{from}}", addressFrom.address1 + ", " + addressFrom.address2 + ", " + addressFrom.address3);

                try
                {
                    var addressTo = jobDetails.addressTo[0];
                    if (addressTo != null)
                    {
                        mail.Personalization[0].AddSubstitution("{{to}}", addressTo.address1 + ", " + addressTo.address2 + ", " + addressTo.address3);
                    }
                }
                catch (Exception)
                {
                    mail.Personalization[0].AddSubstitution("{{to}}", "");
                }

                dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            });
        }
Ejemplo n.º 22
0
        public ActionResult Register(RegistrationModel model)
        {
            if (ModelState.IsValid)
            {
                if (WebMatrix.WebData.WebSecurity.UserExists(model.Email))
                {
                    ModelState.AddModelError("Email", "Account for this email address already exists.");
                }
                else
                {
                    string token = WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.Email, model.Password,
                                                                                      new
                    {
                        FirstName = model.FirstName,
                        LastName  = model.LastName,
                        Email     = model.Email,
                        Password  = model.Password,
                        Line1     = model.BillingAddress1,
                        Line2     = model.BillingAddress2,
                        City      = model.City,
                        State     = model.State,
                        Zipcode   = model.Zipcode
                    },
                                                                                      true);

                    string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];
                    SendGrid.SendGridAPIClient client = new SendGrid.SendGridAPIClient(apiKey);

                    Email  from    = new Email("*****@*****.**");
                    string subject = "Complete your WebStore registration!";
                    Email  to      = new Email(model.Email);

                    string  emailContent = string.Format("<html><body><a href=\"{0}\">Complete your registration</a></body></html>", Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/RegisterConfirm/" + HttpUtility.UrlEncode(token) + "?email=" + HttpUtility.UrlEncode(model.Email));
                    Content content      = new Content("text/HTML", emailContent);
                    Mail    mail         = new Mail(from, subject, to, content);

                    client.client.mail.send.post(requestBody: mail.Get());
                    // TODO: Register Complete Page?
                    return(RedirectToAction("RegisterComplete"));
                }
            }
            return(View(model));
        }
Ejemplo n.º 23
0
        private static async Task TemplateWithoutHelper()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            string data = @"{
              'personalizations': [
                {
                  'to': [
                    {
                      'email': '*****@*****.**'
                    }
                  ],
                  'substitutions': {
                    '-name-': 'Example User',
                    '-city-': 'Denver'
                  },
                  'subject': 'I\'m replacing the subject tag'
                }
              ],
              'from': {
                'email': '*****@*****.**'
              },
              'content': [
                {
                  'type': 'text/html',
                  'value': 'I\'m replacing the <strong>body tag</strong>'
                }
              ],
              'template_id': '13b8f94f-bcae-4ec6-b752-70d6cb59f932'
            }";
            //test @example.com
            Object json = JsonConvert.DeserializeObject<Object>(data);
            dynamic response = await sg.client.mail.send.post(requestBody: json.ToString());

            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.ReadLine();

        }
Ejemplo n.º 24
0
        public static void SendDelivered(string email, string orderId, string name, string voteLink)
        {
            Task.Run(async() =>
            {
                String apiKey = ConfigurationManager.AppSettings.Get("SendGridApiKey");
                dynamic sg    = new SendGrid.SendGridAPIClient(apiKey);

                Email from      = new Email("*****@*****.**");
                String subject  = ConfigurationManager.AppSettings.Get("DeliveredSubject").Replace("{{orderId}}", orderId);
                Email to        = new Email(email);
                Content content = new Content("text/html", subject);
                Mail mail       = new Mail(from, subject, to, content);

                mail.TemplateId = ConfigurationManager.AppSettings.Get("DeliveredTemplateId");
                mail.Personalization[0].AddSubstitution("{{name}}", name);
                mail.Personalization[0].AddSubstitution("{{rateLink}}", voteLink);

                dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            });
        }
Ejemplo n.º 25
0
        private static async Task HelloEmail()
        {
            String  apiKey = "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";
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email   from    = new Email("*****@*****.**");
            String  subject = "Hello World from the SendGrid CSharp Library";
            Email   to      = new Email("*****@*****.**");
            Content content = new Content("text/plain", "Textual content");
            Mail    mail    = new Mail(from, subject, to, content);
            //Email email = new Email("*****@*****.**");
            //mail.Personalization[0].AddTo(email);

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            var statusCode = (response.StatusCode);
            var result     = (response.Body.ReadAsStringAsync().Result);
            var headers    = (response.Headers.ToString());
            var get        = mail.Get();
        }
Ejemplo n.º 26
0
        private static async Task TemplateWithoutHelper()
        {
            String  apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            string data = @"{
              'personalizations': [
                {
                  'to': [
                    {
                      'email': '*****@*****.**'
                    }
                  ],
                  'substitutions': {
                    '-name-': 'Example User',
                    '-city-': 'Denver'
                  },
                  'subject': 'I\'m replacing the subject tag'
                }
              ],
              'from': {
                'email': '*****@*****.**'
              },
              'content': [
                {
                  'type': 'text/html',
                  'value': 'I\'m replacing the <strong>body tag</strong>'
                }
              ],
              'template_id': '13b8f94f-bcae-4ec6-b752-70d6cb59f932'
            }";
            //test @example.com
            Object  json     = JsonConvert.DeserializeObject <Object>(data);
            dynamic response = await sg.client.mail.send.post(requestBody : json.ToString());

            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.ReadLine();
        }
Ejemplo n.º 27
0
        public ActionResult Register(RegistrationModel model)
        {
            if (ModelState.IsValid)
            {
                if (WebMatrix.WebData.WebSecurity.UserExists(model.Email))
                {
                    ModelState.AddModelError("Email", "Email address is already registered");
                }
                else
                {
                    string token = WebMatrix.WebData.WebSecurity.CreateUserAndAccount(model.Email, model.Password,
                                                                                      new
                    {
                        DateCreated = DateTime.UtcNow,
                        FirstName   = model.FirstName,
                        LastName    = model.LastName,
                        Phone       = model.Phone,
                        Email       = model.Email
                    },
                                                                                      true);

                    string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];
                    SendGrid.SendGridAPIClient client = new SendGrid.SendGridAPIClient(apiKey);

                    SendGrid.Helpers.Mail.Email from = new SendGrid.Helpers.Mail.Email("*****@*****.**");
                    string subject = "Complete your EscapeRoom Registration";
                    SendGrid.Helpers.Mail.Email to = new SendGrid.Helpers.Mail.Email(model.Email);
                    string emailContent            = string.Format("<html><body><a href=\"{0}\">Complete your registration</a></body></html>", Request.Url.GetLeftPart(UriPartial.Authority) +
                                                                   "/Account/REgisterConfirm/" + HttpUtility.UrlEncode(token) + "?email=" + HttpUtility.UrlEncode(model.Email));
                    SendGrid.Helpers.Mail.Content content = new SendGrid.Helpers.Mail.Content("Text/html", emailContent);
                    SendGrid.Helpers.Mail.Mail    mail    = new SendGrid.Helpers.Mail.Mail(from, subject, to, content);

                    client.client.mail.send.post(requestBody: mail.Get());
                    return(RedirectToAction("RegisterComplete"));
                }
                return(View(model));
            }
            return(View(model));
        }
Ejemplo n.º 28
0
        public override void HandleRequest(RequestContext context, NameValueCollection query)
        {
            // get query
            var accEmail = query["guid"];

            // verify email exist
            DbAccount acc;
            var       status = Database.Verify(accEmail, "", out acc);

            if (!Utils.IsValidEmail(accEmail) || status == LoginStatus.AccountNotExists)
            {
                Write(context, "<Error>Email not recognized</Error>");
                return;
            }

            // save reset token
            acc = Database.GetAccount(accEmail);
            acc.PassResetToken = Guid.NewGuid().ToString().Replace("-", "");
            acc.FlushAsync();

            // send email
            var resetLink = "http://test.nillysrealm.com/account/rp?b=${b}&a=${a}"
                            .Replace("${b}", acc.PassResetToken)
                            .Replace("${a}", acc.AccountId.ToString());

            var apikey  = Program.Config.serverSettings.sendGridApiKey;
            var sg      = new SendGrid.SendGridAPIClient(apikey);
            var from    = new Email("*****@*****.**", "Nilly's Realm");
            var subject = "Password Reset Request on Nilly's Realm";
            var to      = new Email(accEmail);
            var content = new Content("text/plain", Program.Resources.ChangePass.GetRequestEmail(resetLink));
            var mail    = new Mail(from, subject, to, content);

            sg.client.mail.send.post(requestBody: mail.Get());

            Write(context, "<Success />");
            PassLog.Info($"Password reset requested. IP: {context.Request.ClientIP()}, Account: {acc.Name} ({acc.AccountId})");
        }
Ejemplo n.º 29
0
        // GET: PasswordForgot
        public ActionResult ForgotPassword()
        {
            RegistrationModel model = new RegistrationModel();
            string            token = WebMatrix.WebData.WebSecurity.GeneratePasswordResetToken(model.Email);

            string apiKey = ConfigurationManager.AppSettings["SendGrid.Key"];

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

            Email  from    = new Email("*****@*****.**");
            string subject = "WebStore Password Reset";
            Email  to      = new Email(model.Email);

            string emailContent = string.Format("<html><body><a href=\"{0}\">Reset my password</a></body></html>",
                                                Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/PasswordReset"
                                                + HttpUtility.UrlEncode(token) + "?email=" + HttpUtility.UrlEncode(model.Email));
            Content content = new Content("text/HTML", emailContent);
            Mail    mail    = new Mail(from, subject, to, content);

            client.client.mail.send.post(requestBody: mail.Get());

            return(RedirectToAction("PasswordReset"));
        }
Ejemplo n.º 30
0
        private static async Task TemplateWithHelper()
        {
            String  apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg     = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email   from    = new Email("*****@*****.**");
            String  subject = "I'm replacing the subject tag";
            Email   to      = new Email("*****@*****.**");
            Content content = new Content("text/html", "I'm replacing the <strong>body tag</strong>");
            Mail    mail    = new Mail(from, subject, to, content);

            mail.TemplateId = "13b8f94f-bcae-4ec6-b752-70d6cb59f932";
            mail.Personalization[0].AddSubstitution("-name-", "Example User");
            mail.Personalization[0].AddSubstitution("-city-", "Denver");

            dynamic response = await sg.client.mail.send.post(requestBody : mail.Get());

            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.ReadLine();
        }
Ejemplo n.º 31
0
        private static async Task TemplateWithHelper()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email from = new Email("*****@*****.**");
            String subject = "I'm replacing the subject tag";
            Email to = new Email("*****@*****.**");
            Content content = new Content("text/html", "I'm replacing the <strong>body tag</strong>");
            Mail mail = new Mail(from, subject, to, content);

            mail.TemplateId = "13b8f94f-bcae-4ec6-b752-70d6cb59f932";
            mail.Personalization[0].AddSubstitution("-name-", "Example User");
            mail.Personalization[0].AddSubstitution("-city-", "Denver");

            dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.ReadLine();

        }
Ejemplo n.º 32
0
        private void SendEmailNotification(string sendToEmailAddress, string subject, string message)
        {
            if (string.IsNullOrEmpty(sendToEmailAddress))
            {
                string invalidEmailMessage = "Notification not sent. Email address not available";
                Trace.TraceError(string.Format(message));
                Trace.TraceError(invalidEmailMessage);
                throw new FormatException(invalidEmailMessage);
            }

            var     sg          = new SendGrid.SendGridAPIClient(Config.SendGridApiKey, Config.SendGridEndPoint);
            Email   from        = new Email(Config.NotificationFromEmailAddress, Config.NotificationFromName);
            Content content     = new Content("text/plain", message.Replace(htmlLineBreak, Environment.NewLine));
            Content htmlContent = new Content("text/html", message);

            var to   = new Email(sendToEmailAddress);
            var mail = new Mail(from, subject, to, content);

            mail.AddContent(htmlContent);
            mail.Subject = subject;

            var requestBody = mail.Get();

            dynamic response = sg.client.mail.send.post(requestBody: requestBody);

            HttpStatusCode statusCode = response.StatusCode;

            if (((int)statusCode >= 200) && ((int)statusCode <= 299))
            {
                Trace.TraceInformation("Email notification sent.");
            }
            else
            {
                Trace.TraceError(string.Format("Error sending email notification. {0}, {1}", statusCode, message));
                throw new HttpException((int)statusCode, "Email could not be sent!");
            }
        }
        public async Task <ActionResult> ForgotPassword(JinStore.Models.ForgotPasswordModel model)
        {
            if (WebSecurity.UserExists(model.EmailAddress))
            {
                string resetToken = WebSecurity.GeneratePasswordResetToken(model.EmailAddress);
                string resetUrl   = Request.Url.GetLeftPart(UriPartial.Authority) + "/Membership/Reset?resetToken=" + resetToken;

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

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

                Email   from    = new Email("*****@*****.**");
                string  subject = "Instructions for Resetting Your Password";
                Email   to      = new Email(model.EmailAddress);
                Content content = new Content("text/html", string.Format("<a href=\"{0}\">Reset your password</a>", resetUrl));
                Mail    mail    = new Mail(from, subject, to, content);

                var response = await client.client.mail.send.post(requestBody : mail.Get());

                string message = await response.Body.ReadAsStringAsync();
            }

            return(RedirectToAction("ResetSent"));
        }
Ejemplo n.º 34
0
        private static async Task ApiKeys()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            string queryParams = @"{
                'limit': 100
            }";
            dynamic response = await sg.client.api_keys.get(queryParams: queryParams);
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine("\n\nPress any key to continue to POST.");
            Console.ReadLine();

            // POST
            string requestBody = @"{
                'name': 'My API Key 5',
                'scopes': [
                    'mail.send',
                    'alerts.create',
                    'alerts.read'
                ]
            }";
            Object json = JsonConvert.DeserializeObject<Object>(requestBody);
            response = await sg.client.api_keys.post(requestBody: json.ToString());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());
            JavaScriptSerializer jss = new JavaScriptSerializer();
            var ds_response = jss.Deserialize<Dictionary<string, dynamic>>(response.Body.ReadAsStringAsync().Result);
            string api_key_id = ds_response["api_key_id"];

            Console.WriteLine("\n\nPress any key to continue to GET single.");
            Console.ReadLine();

            // GET Single
            response = await sg.client.api_keys._(api_key_id).get();
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine("\n\nPress any key to continue to PATCH.");
            Console.ReadLine();

            // PATCH
            requestBody = @"{
                'name': 'A New Hope'
            }";
            json = JsonConvert.DeserializeObject<Object>(requestBody);
            response = await sg.client.api_keys._(api_key_id).patch(requestBody: json.ToString());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine("\n\nPress any key to continue to PUT.");
            Console.ReadLine();

            // PUT
            requestBody = @"{
                'name': 'A New Hope',
                'scopes': [
                '   user.profile.read',
                '   user.profile.update'
                ]
            }";
            json = JsonConvert.DeserializeObject<Object>(requestBody);
            response = await sg.client.api_keys._(api_key_id).put(requestBody: json.ToString());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine("\n\nPress any key to continue to DELETE.");
            Console.ReadLine();

            // DELETE
            response = await sg.client.api_keys._(api_key_id).delete();
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine("\n\nPress any key to exit.");
            Console.ReadLine();

        }
Ejemplo n.º 35
0
        private static void HelloEmail()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Email from = new Email("*****@*****.**");
            String subject = "Hello World from the SendGrid CSharp Library";
            Email to = new Email("*****@*****.**");
            Content content = new Content("text/plain", "Textual content");
            Mail mail = new Mail(from, subject, to, content);
            Email email = new Email("*****@*****.**");
            mail.Personalization[0].AddTo(email);

            String ret = mail.Get();

            string requestBody = ret;
            dynamic response = sg.client.mail.send.beta.post(requestBody: requestBody);
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine(ret);
            Console.ReadLine();
        }
Ejemplo n.º 36
0
        private static async Task KitchenSink()
        {
            String apiKey = Environment.GetEnvironmentVariable("SENDGRID_APIKEY", EnvironmentVariableTarget.User);
            dynamic sg = new SendGrid.SendGridAPIClient(apiKey, "https://api.sendgrid.com");

            Mail mail = new Mail();

            Email email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            mail.From = email;

            mail.Subject = "Hello World from the SendGrid CSharp Library";

            Personalization personalization = new Personalization();
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddTo(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddCc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddCc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddBcc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddBcc(email);
            personalization.Subject = "Thank you for signing up, %name%";
            personalization.AddHeader("X-Test", "True");
            personalization.AddHeader("X-Mock", "True");
            personalization.AddSubstitution("%name%", "Example User");
            personalization.AddSubstitution("%city%", "Denver");
            personalization.AddCustomArgs("marketing", "false");
            personalization.AddCustomArgs("transactional", "true");
            personalization.SendAt = 1461775051;
            mail.AddPersonalization(personalization);

            personalization = new Personalization();
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddTo(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddCc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddCc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddBcc(email);
            email = new Email();
            email.Name = "Example User";
            email.Address = "*****@*****.**";
            personalization.AddBcc(email);
            personalization.Subject = "Thank you for signing up, %name%";
            personalization.AddHeader("X-Test", "True");
            personalization.AddHeader("X-Mock", "True");
            personalization.AddSubstitution("%name%", "Example User");
            personalization.AddSubstitution("%city%", "Denver");
            personalization.AddCustomArgs("marketing", "false");
            personalization.AddCustomArgs("transactional", "true");
            personalization.SendAt = 1461775051;
            mail.AddPersonalization(personalization);

            Content content = new Content();
            content.Type = "text/plain";
            content.Value = "Textual content";
            mail.AddContent(content);
            content = new Content();
            content.Type = "text/html";
            content.Value = "<html><body>HTML content</body></html>";
            mail.AddContent(content);
            content = new Content();
            content.Type = "text/calendar";
            content.Value = "Party Time!!";
            mail.AddContent(content);

            Attachment attachment = new Attachment();
            attachment.Content = "TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12";
            attachment.Type = "application/pdf";
            attachment.Filename = "balance_001.pdf";
            attachment.Disposition = "attachment";
            attachment.ContentId = "Balance Sheet";
            mail.AddAttachment(attachment);

            attachment = new Attachment();
            attachment.Content = "BwdW";
            attachment.Type = "image/png";
            attachment.Filename = "banner.png";
            attachment.Disposition = "inline";
            attachment.ContentId = "Banner";
            mail.AddAttachment(attachment);

            mail.TemplateId = "13b8f94f-bcae-4ec6-b752-70d6cb59f932";

            mail.AddHeader("X-Day", "Monday");
            mail.AddHeader("X-Month", "January");

            mail.AddSection("%section1", "Substitution for Section 1 Tag");
            mail.AddSection("%section2", "Substitution for Section 2 Tag");

            mail.AddCategory("customer");
            mail.AddCategory("vip");

            mail.AddCustomArgs("campaign", "welcome");
            mail.AddCustomArgs("sequence", "2");

            ASM asm = new ASM();
            asm.GroupId = 3;
            List<int> groups_to_display = new List<int>()
            {
                1, 4, 5
            };
            asm.GroupsToDisplay = groups_to_display;
            mail.Asm = asm;

            mail.SendAt = 1461775051;

            mail.SetIpPoolId = "23";

            // This must be a valid [batch ID](https://sendgrid.com/docs/API_Reference/SMTP_API/scheduling_parameters.html)
            // mail.BatchId = "some_batch_id";

            MailSettings mailSettings = new MailSettings();
            BCCSettings bccSettings = new BCCSettings();
            bccSettings.Enable = true;
            bccSettings.Email = "*****@*****.**";
            mailSettings.BccSettings = bccSettings;
            BypassListManagement bypassListManagement = new BypassListManagement();
            bypassListManagement.Enable = true;
            mailSettings.BypassListManagement = bypassListManagement;
            FooterSettings footerSettings = new FooterSettings();
            footerSettings.Enable = true;
            footerSettings.Text = "Some Footer Text";
            footerSettings.Html = "<bold>Some HTML Here</bold>";
            mailSettings.FooterSettings = footerSettings;
            SandboxMode sandboxMode = new SandboxMode();
            sandboxMode.Enable = true;
            mailSettings.SandboxMode = sandboxMode;
            SpamCheck spamCheck = new SpamCheck();
            spamCheck.Enable = true;
            spamCheck.Threshold = 1;
            spamCheck.PostToUrl = "https://gotchya.example.com";
            mailSettings.SpamCheck = spamCheck;
            mail.MailSettings = mailSettings;

            TrackingSettings trackingSettings = new TrackingSettings();
            ClickTracking clickTracking = new ClickTracking();
            clickTracking.Enable = true;
            clickTracking.EnableText = false;
            trackingSettings.ClickTracking = clickTracking;
            OpenTracking openTracking = new OpenTracking();
            openTracking.Enable = true;
            openTracking.SubstitutionTag = "Optional tag to replace with the open image in the body of the message";
            trackingSettings.OpenTracking = openTracking;
            SubscriptionTracking subscriptionTracking = new SubscriptionTracking();
            subscriptionTracking.Enable = true;
            subscriptionTracking.Text = "text to insert into the text/plain portion of the message";
            subscriptionTracking.Html = "<bold>HTML to insert into the text/html portion of the message</bold>";
            subscriptionTracking.SubstitutionTag = "text to insert into the text/plain portion of the message";
            trackingSettings.SubscriptionTracking = subscriptionTracking;
            Ganalytics ganalytics = new Ganalytics();
            ganalytics.Enable = true;
            ganalytics.UtmCampaign = "some campaign";
            ganalytics.UtmContent = "some content";
            ganalytics.UtmMedium = "some medium";
            ganalytics.UtmSource = "some source";
            ganalytics.UtmTerm = "some term";
            trackingSettings.Ganalytics = ganalytics;
            mail.TrackingSettings = trackingSettings;

            email = new Email();
            email.Address = "*****@*****.**";
            mail.ReplyTo = email;

            dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
            Console.WriteLine(response.StatusCode);
            Console.WriteLine(response.Body.ReadAsStringAsync().Result);
            Console.WriteLine(response.Headers.ToString());

            Console.WriteLine(mail.Get());
            Console.ReadLine();
        }