public async System.Threading.Tasks.Task <System.Net.HttpStatusCode> SendAsync() { if (System.String.IsNullOrWhiteSpace(this.APIKeyPassword)) { return(System.Net.HttpStatusCode.Unauthorized); } if ((this.From == null) || (System.String.IsNullOrWhiteSpace(this.From.Address)) || (this.To == null) || (!(To.Any())) || (To.Any(i => System.String.IsNullOrWhiteSpace(i.Address)))) { return(System.Net.HttpStatusCode.BadRequest); } SendGrid.SendGridClient Client = new SendGrid.SendGridClient(this.APIKeyPassword); SendGrid.Helpers.Mail.EmailAddress FromEmailAddress = new SendGrid.Helpers.Mail.EmailAddress(this.From.Address, this.From.Name); SendGrid.Helpers.Mail.SendGridMessage Message; if (this.To.Count == 1) { Message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(FromEmailAddress, new SendGrid.Helpers.Mail.EmailAddress(this.To[0].Address, this.To[0].Name), this.Subject, this.PlainTextContent, this.HTMLContent); } else { Message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmailToMultipleRecipients(FromEmailAddress, To.Select(i => new SendGrid.Helpers.Mail.EmailAddress(i.Address, i.Name)).ToList(), this.Subject, this.PlainTextContent, this.HTMLContent); } return((await Client.SendEmailAsync(Message)).StatusCode); }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "This Site Sucks"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); message.SetTemplateId("00d2976e-dc01-4402-9090-860f33bd424d"); var mailResult = await _sendGridClient.SendEmailAsync(message); SendEmailResult result = new SendEmailResult(); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { result.Success = true; } else { var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body); result.Success = false; foreach (var error in badMailResponse["errors"]) { result.Errors.Add(new SendEmailResult.SendEmailError { Message = error.message, Field = error.field, Help = error.help }); } } return(result); }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "My Boat"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); //message.SetTemplateId("a58eb3b6-f8e3-403d-bdba-5796e2df4172"); var mailResult = await _sendGridClient.SendEmailAsync(message); SendEmailResult result = new SendEmailResult(); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { result.Success = true; } else { var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body); result.Success = false; foreach (var error in badMailResponse["errors"]) { result.Errors.Add(new SendEmailResult.SendEmailError { Message = error.message, Field = error.field, Help = error.help }); } } return(result); }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Thanks for contacting Donut Store"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); //you have to get this ID from your sendgrid template message.SetTemplateId("cc6c2090-780c-4b81-8355-ad1776efd1de"); var mailResult = await _sendGridClient.SendEmailAsync(message); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { return(new SendEmailResult { Success = true }); } else { return(new SendEmailResult { Success = false, Message = await mailResult.Body.ReadAsStringAsync() }); } }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "The Chesed Project"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); message.SetTemplateId("f54eaab7-93e1-48c4-9fc0-706fadd1af38"); var mailResult = await _sendGridClient.SendEmailAsync(message); SendEmailResult result = new SendEmailResult(); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { result.Success = true; } else { var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body); result.Success = false; foreach (var error in badMailResponse["errors"]) { result.Errors.Add(new SendEmailResult.SendEmailError { Message = error.message, Field = error.field, Help = error.help }); } } return(result); }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("admin@flavortownburgers", "Flavor Town Burgers"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); message.SetTemplateId("bd93b262-7f59-4ceb-a9ad-73f64ab6526e"); var mailResult = await _sendGridClient.SendEmailAsync(message); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { return(new SendEmailResult { Success = true }); } else { return(new SendEmailResult { Success = false, Message = await mailResult.Body.ReadAsStringAsync() }); } }
public async Task <SendEmailResult> ContactEmailAsync(string sender, string subject, string htmlContent, string plainTextContent) { var to = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**"); var from = new SendGrid.Helpers.Mail.EmailAddress(sender); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); var mailResult = await _sendGridClient.SendEmailAsync(message); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { return(new SendEmailResult { Success = true }); } else { return(new SendEmailResult { Success = false, Message = await mailResult.Body.ReadAsStringAsync() }); } }
public async System.Threading.Tasks.Task <ActionResult> Register(string username, string email, string password) { var userStore = new Microsoft.AspNet.Identity.EntityFramework.UserStore <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(); var manager = new Microsoft.AspNet.Identity.UserManager <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(userStore); var user = new Microsoft.AspNet.Identity.EntityFramework.IdentityUser() { UserName = username, Email = email, EmailConfirmed = false }; manager.UserTokenProvider = new Microsoft.AspNet.Identity.EmailTokenProvider <Microsoft.AspNet.Identity.EntityFramework.IdentityUser>(); Microsoft.AspNet.Identity.IdentityResult result = await manager.CreateAsync(user, password); if (result.Succeeded) { //I have some options: log them in, or I can send them an email to "Confirm" their account details.' //I don't have email set up this week, so we'll come back to that. string confirmationToken = await manager.GenerateEmailConfirmationTokenAsync(user.Id); string confirmationLink = Request.Url.GetLeftPart(UriPartial.Authority) + "/Account/Confirm/" + user.Id + "?token=" + confirmationToken; string apiKey = System.Configuration.ConfigurationManager.AppSettings["SendGrid.ApiKey"]; SendGrid.ISendGridClient client = new SendGrid.SendGridClient(apiKey); SendGrid.Helpers.Mail.EmailAddress from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Coding Cookware Administrator"); SendGrid.Helpers.Mail.EmailAddress to = new SendGrid.Helpers.Mail.EmailAddress(email); string subject = "Confirm your Coding Cookware Account"; string htmlContent = string.Format("<a href=\"{0}\">Confirm Your Account</a>", confirmationLink); string plainTextContent = confirmationLink; SendGrid.Helpers.Mail.SendGridMessage message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); SendGrid.Response response = await client.SendEmailAsync(message); TempData["EmailAddress"] = email; return(RedirectToAction("ConfirmationSent")); //Commenting this out: I'm not going to log the user in on registration anymore - I'm going to send them a confirmation email instead. //This authentication manager will create a cookie for the current user, and that cookie will be exchanged on each request until the user logs out //var authenticationManager = HttpContext.GetOwinContext().Authentication; //var userIdentity = await manager.CreateIdentityAsync(user, Microsoft.AspNet.Identity.DefaultAuthenticationTypes.ApplicationCookie); //authenticationManager.SignIn(new Microsoft.Owin.Security.AuthenticationProperties() { }, userIdentity); } else { ViewBag.Error = result.Errors; return(View()); } return(RedirectToAction("Index", "Home")); }
/// <summary> /// Install-Package SendGrid /// </summary> public void SendEmailViaApi(string emailSubject, string plainTextContent, string htmlContent, string senderEmail, string senderName, string receiverEmail, string receiverName) { var client = new SendGrid.SendGridClient(this._apikey); var from = new SendGrid.Helpers.Mail.EmailAddress(senderEmail, senderName); var to = new SendGrid.Helpers.Mail.EmailAddress(receiverEmail, receiverName); //var plainTextContent = "and easy to do anywhere, even with C#"; //var htmlContent = "<strong>and easy to do anywhere, even with C#</strong>"; var msg = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, emailSubject, plainTextContent, htmlContent); var response = client.SendEmailAsync(msg).GetAwaiter().GetResult(); }
protected virtual SendGridHelper.Mail.SendGridMessage PrepareMail(EmailRequest request) { var from = new SendGridHelper.Mail.EmailAddress(request.FromEmail.Email, request.FromEmail.Name); var to = new List <SendGridHelper.Mail.EmailAddress>(); request.To.ForEach(_ => { to.Add(new SendGridHelper.Mail.EmailAddress(request.FromEmail.Email, request.FromEmail.Name)); }); SendGridHelper.Mail.SendGridMessage msg = SendGridHelper.Mail.MailHelper.CreateSingleEmailToMultipleRecipients(from, to, request.Subject, request.Content, request.IsBodyHtml ? request.Content : string.Empty); request.Attachments?.ForEach(_ => { msg.AddAttachment(new SendGridHelper.Mail.Attachment() { Content = Convert.ToBase64String(_.Content), Filename = _.Name, Type = _.Type }); }); return(msg); }
public async Task <SendEmailResult> SendEmailAsync(string recipient, string subject, string htmlContent, string plainTextContent) { var from = new SendGrid.Helpers.Mail.EmailAddress("*****@*****.**", "Coding Temple Golf"); var to = new SendGrid.Helpers.Mail.EmailAddress(recipient); var message = SendGrid.Helpers.Mail.MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent); message.SetTemplateId("cfd4e7f3-abdd-437d-b5aa-5b1f987431c0"); var mailResult = await _sendGridClient.SendEmailAsync(message); SendEmailResult result = new SendEmailResult(); if ((mailResult.StatusCode == System.Net.HttpStatusCode.OK) || (mailResult.StatusCode == System.Net.HttpStatusCode.Accepted)) { //return new SendEmailResult //{ // Success = true //}; result.Success = true; } else { //return new SendEmailResult var badMailResponse = mailResult.DeserializeResponseBody(mailResult.Body); result.Success = false; foreach (var error in badMailResponse["errors"]) { //Success = false, //Message = await mailResult.Body.ReadAsStringAsync() result.Errors.Add(new SendEmailResult.SendEmailError { Message = error.message, Field = error.field, Help = error.help }); } } return(result); }
public override Task SendAsync(MailMessage message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } var oclient = new SG.SendGridClient(SmtpServer.ApiKey); var sgMessage = new SG.Helpers.Mail.SendGridMessage(); var from = new SG.Helpers.Mail.EmailAddress(); sgMessage.Subject = message.Subject; sgMessage.HtmlContent = message.Body; if (message.From != null) { sgMessage.From = new SG.Helpers.Mail.EmailAddress(message.From.Address, message.From.DisplayName); } else { sgMessage.From = new SG.Helpers.Mail.EmailAddress(DefaultFromEmail, DefaultFromName); } if (message.Attachments != null & message.Attachments.Count > 0) { foreach (var attachment in message.Attachments) { using (var reader = new System.IO.StreamReader(attachment.ContentStream)) { string contentDisposition = null; string contentType = null; if (attachment.ContentDisposition != null) { contentDisposition = attachment.ContentDisposition.DispositionType; } if (attachment.ContentType != null) { contentType = attachment.ContentType.Name; } sgMessage.AddAttachment(attachment.Name, reader.ReadToEnd(), contentType, contentDisposition, attachment.ContentId); } } } foreach (var to in message.To) { sgMessage.AddTo(to.Address, to.DisplayName); } foreach (var cc in message.CC) { sgMessage.AddCc(cc.Address, cc.DisplayName); } foreach (var bcc in message.Bcc) { sgMessage.AddBcc(bcc.Address, bcc.DisplayName); } return(oclient.SendEmailAsync(sgMessage)); }