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