static async Task Execute() { var apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY"); var client = new SendGridClient(apiKey); var msg = new SendGridMessage(); var people = new List <Person> { new Person { FirstName = "First1", LastName = "Last1", Email = "*****@*****.**" }, new Person { FirstName = "First2", LastName = "Last2", Email = "*****@*****.**" }, new Person { FirstName = "First3", LastName = "Last3", Email = "*****@*****.**" } }; msg.SetFrom(new EmailAddress("*****@*****.**", "Example User")); msg.SetSubject("Test Subject 1"); msg.AddContent(MimeType.Text, "Hello -firstname- -lastname-"); var tos = new List <EmailAddress>(); var personalizationIndex = 0; foreach (var person in people) { tos.Add(new EmailAddress(person.Email, person.FirstName)); msg.AddSubstitution("-firstname-", person.FirstName, personalizationIndex); msg.AddSubstitution("-lastname-", person.LastName, personalizationIndex); personalizationIndex++; } msg.AddTos(tos); var response = await client.SendEmailAsync(msg); }
public async Task SendPenaltyInvoice(Penalty penalty) { Parking parking = await context.Parking.FindAsync(penalty.ParkingId); DateTime penaltyTime = DateTime.Now; DateTime startTime = DateTime.Parse(Convert.ToString(parking.CreatedAt)); DateTime expectedEnd = startTime.AddHours(Convert.ToDouble(parking.ParkedHours)); //This key is for authentication in SendGrid API var sendGridAPIKey = Environment.GetEnvironmentVariable("SENDGRID_KEY"); //Initializing new instance of the API client var mailClient = new SendGridClient(sendGridAPIKey); //Initializing new message var message = new SendGridMessage() { From = new EmailAddress("*****@*****.**", "ParkKL"), }; message.SetTemplateId("a1049d0f-08ed-4a78-8b3e-d1e890b41ec0"); message.AddSubstitution("-PLATE-", parking.CarPlateNumber); message.AddSubstitution("-LOCATION-", parking.LocationName); message.AddSubstitution("-ISSUETIME-", penaltyTime.ToString("g")); message.AddSubstitution("-ENDTIME-", expectedEnd.ToString("g")); message.AddSubstitution("-EXCEED-", penalty.ExceededHours); message.AddTo(new EmailAddress(penalty.Email, "User")); //Sending the E-mail message var response = await mailClient.SendEmailAsync(message); }
public static Task EnviarRedefinicaoSenha(string email, string nome, string url) { var username = Properties.Resources.userEmail; var pswd = Properties.Resources.userSenha; SendGridMessage myMessage = new SendGridMessage(); myMessage.AddTo(email); myMessage.From = new MailAddress("*****@*****.**", "Lance Um Desafio"); myMessage.EnableTemplateEngine("c03dd00b-eaf1-42f7-9047-5f026f42163f"); // Redefinição De Senha myMessage.Subject = "Lance Um Desafio - Redefinição De Senha"; myMessage.Html = "Olá"; myMessage.Text = "Olá"; myMessage.AddSubstitution("[USER_NAME]", new List <string> { nome }); myMessage.AddSubstitution("[URL_RESET]", new List <string> { url }); var credenciais = new NetworkCredential(username, pswd); var transporteWeb = new Web(credenciais); if (transporteWeb != null) { return(transporteWeb.DeliverAsync(myMessage)); } else { return(Task.FromResult(0)); } }
public async Task SendTopUpReceipt(Wallet wallet, string Id, string Amount) { User user = await context.Users.FindAsync(Id); DateTime paymentTime = DateTime.Now; //This key is for authentication in SendGrid API var sendGridAPIKey = Environment.GetEnvironmentVariable("SENDGRID_KEY"); //Initializing new instance of the API client var mailClient = new SendGridClient(sendGridAPIKey); //Initializing new message var message = new SendGridMessage() { From = new EmailAddress("*****@*****.**", "ParkKL"), }; //Configuring the E-mail message to fit a saved template message.SetTemplateId("7f25958d-a1bb-47e8-95aa-59a0e308373e"); message.AddSubstitution("-FIRST-", user.FirstName); message.AddSubstitution("-DATE-", paymentTime.ToString("g")); message.AddSubstitution("-AMOUNT-", Amount); message.AddSubstitution("-BALANCE-", wallet.Balance.ToString()); message.AddTo(new EmailAddress(wallet.Email, "User")); //Sending the E-mail message var response = await mailClient.SendEmailAsync(message); }
public async Task <OperationResult> Execute(string apiKey, string subject, string email, string templateId = null, Dictionary <string, string> arguments = null) { var client = new SendGridClient(apiKey); var msg = new SendGridMessage() { // should be a domain other than yahoo.com, outlook.com, hotmail.com, gmail.com From = new EmailAddress("*****@*****.**", "Azure Quest Workshop"), Subject = subject, TemplateId = templateId }; msg.AddSubstitution("<%subject%>", subject); if (arguments != null) { arguments.ToList().ForEach(pair => { msg.AddSubstitution(pair.Key, pair.Value); }); } msg.AddTo(new EmailAddress(email)); msg.SetOpenTracking(true, "<%tracking%>"); msg.SetClickTracking(true, true); msg.SetSubscriptionTracking(true); var response = await client.SendEmailAsync(msg); return(new OperationResult(true) { Tag = response }); }
public async Task <string> SendNewUserInvitation([FromBody] SetPasswordMessage notification) { var msg = new SendGridMessage(); msg.AddSubstitution("-username-", notification.EventBody.Username); msg.AddSubstitution("-passwordtoken-", notification.EventBody.PasswordRenewalAccessToken); msg.AddSubstitution("-passwordverificationcode-", notification.EventBody.PasswordRenewalVerificationCode); return(await SendSendGrid(notification, msg)); }
private SendGridMessage BuildEmailMessage(EmailSettings settings, Models.SubmissionData submissionData) { // 1. Buld SendGrid message with params and substitutions var msg = new SendGridMessage(); msg.SetFrom(new EmailAddress(settings.FromAddress, settings.FromName)); msg.AddTo(new EmailAddress(settings.ToAddress)); if (!string.IsNullOrEmpty(settings.TemplateId)) { msg.SetTemplateId(settings.TemplateId); } if (string.IsNullOrEmpty(msg.TemplateId)) { var plainTextContent = settings.TextContent; msg.SetSubject(settings.Subject); msg.AddContent(System.Net.Mime.MediaTypeNames.Text.Plain, plainTextContent); } else { foreach (var s in submissionData.Fields) { msg.AddSubstitution($"-{s.Name}-", s.Value); } } return(msg); }
static async Task Execute() { var sendGridMessage = new SendGridMessage(); byte[] data = Convert.FromBase64String(_base64ApiKey); string decodedString = Encoding.UTF8.GetString(data); var client = new SendGridClient(decodedString); sendGridMessage.From = new EmailAddress("*****@*****.**", "HRPayroll"); foreach (MailAddress mailAddress in _email.To) { sendGridMessage.AddTo(mailAddress.Address, mailAddress.DisplayName); sendGridMessage.AddSubstitution("#Name#", mailAddress.DisplayName); } sendGridMessage.Subject = _email.Subject; sendGridMessage.HtmlContent = _email.Body; sendGridMessage.TemplateId = "661fbfd5-e6ed-42c7-b436-adc9651c0db8"; var response = await client.SendEmailAsync(sendGridMessage); foreach (MailAddress emailAddress in _email.To) { new EventLogger( string.Format("Email logged to \"{0}\" with subject \"{1}\" with status code \"{2}\"", emailAddress.DisplayName, _email.Subject, response.StatusCode.ToString()), Severity.Event); } }
/// <summary> /// Add any substitutions we have to the message /// </summary> /// <param name="message"></param> /// <param name="subs"></param> private static void AddSubstitutions(SendGridMessage message, Dictionary <string, string> subs) { foreach (var pair in subs) { message.AddSubstitution(pair.Key, pair.Value); } }
public async Task <IActionResult> ForgotPassword(LoginViewModel vm) { var user = await _userManager.FindByNameAsync(vm.UserName); var confirmationCode = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = Url.Action( controller: "Home", action: "ResetPassword", values: new { userId = user.Id, code = confirmationCode }, protocol: Request.Scheme); var client = new SendGridClient("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"); // Initiate a new send grid message. var msg = new SendGridMessage { From = new EmailAddress(vm.UserName, "KingPim Reset Password") }; // Add the receiver. msg.AddTo("*****@*****.**"); // Add template id the email should use. msg.TemplateId = "63dce31a-4040-45d9-9a2b-a63495a16c5f"; // Set the substitution tag value. msg.AddSubstitution("substitutionLink", callbackUrl); // Send the email async and get the response from API. var response = client.SendEmailAsync(msg).Result; TempData["CheckYourEmail"] = "Your reset password link was sent to your email."; return(RedirectToAction(nameof(Index))); }
public async Task <string> SendQuoteSurvey(PolicyDTO policy) { string batchId = await GetBatchId(); string fullName = $"{policy.Contact.FirstName} {policy.Contact.LastName}"; SendGridMessage message = new SendGridMessage() { To = new MailAddress[] { new MailAddress(policy.Contact.EmailAddress, fullName), }, Subject = "RAC Bicycle Insurance Survey", From = new MailAddress(ExternalEmailsFrom, "RAC Bicycle Insurance"), Html = $"Hi", Text = $"Hi" }; message.Headers["batch_id"] = batchId; message.SetSendAt(DateTime.UtcNow.AddMinutes(10)); message.EnableTemplateEngine(_surveyTemplateId); message.AddSubstitution("%%name%%", new List <string> { fullName }); SendGrid.Web transportWeb = new SendGrid.Web(_sendGridApiKey); await transportWeb.DeliverAsync(message); return("Hello"); }
public static async Task <bool> SendInvitationEmailAsync(string userEmailAddress, string redeemUrl) { var mailClient = new SendGrid.SendGridClient(Constants.SendGridAPIKey); var message = new SendGridMessage() { From = new EmailAddress(Constants.SendGridNoReploy), TemplateId = Constants.SendGridTemplateId, Subject = Constants.SendGridSubject, }; message.AddTo(new EmailAddress(userEmailAddress)); message.AddSubstitution("%invitationRedeemUrl%", redeemUrl); // Send e-mail var sendGridWebTransport = await mailClient.SendEmailAsync(message); if (sendGridWebTransport.StatusCode == HttpStatusCode.Accepted) { return(true); } else { return(false); } }
public void SendErrorLogMessage(string _subject, string _FullErrorMessage) { try { var errorTemplateSendGridId = System.Configuration.ConfigurationSettings.AppSettings["SENDGRID_ERRORTEMPLATEID"]; var fromError = System.Configuration.ConfigurationSettings.AppSettings["SENDGRID_ERROR_EMAILFROM"]; var msg = new SendGridMessage() { From = new EmailAddress(fromError, "ONR Video Error Team"), Subject = _subject }; var toError = System.Configuration.ConfigurationSettings.AppSettings["SENDGRID_ERROR_EMAILTO"]; msg.AddTo(new EmailAddress("*****@*****.**", "")); msg.SetTemplateId(errorTemplateSendGridId); msg.AddSubstitution("FullErrorMessage", _FullErrorMessage); SendMail(msg).Wait(); } catch (Exception ex) { System.Diagnostics.Trace.TraceError(string.Format("Error when creating log error emailEmail {0} . Error Information : {1}, {2}", _subject, ex.Message, ex.InnerException)); } //writeMessage(_message, LogType.Message); }
public async Task <IActionResult> ForgottenPassword(LoginViewModel vm) { var user = await _userManager.FindByNameAsync(vm.UserName); var confCode = await _userManager.GeneratePasswordResetTokenAsync(user); var link = Url.Action("ResetPassword", "Home", new { userId = user.Id, code = confCode }, protocol: Request.Scheme); // The new SendGridClient with the API-key: var client = new SendGridClient("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"); // The message from SendGrid: var msg = new SendGridMessage { From = new EmailAddress(vm.UserName, "Password Reset") }; // The reciever of the mail: msg.AddTo(vm.UserName); // The template id the email should use from SendGrid: msg.TemplateId = "6a88245c-ff27-427c-817e-556d50213a82"; // Set the substitution tag value. This will create a link to reset password. msg.AddSubstitution("substitutionLink", link); // Send the email async and get the response from API. var response = client.SendEmailAsync(msg).Result; return(RedirectToAction(nameof(Index))); }
public async Task <bool> SendPasswordResetLink(string toEmail, string toName, string url) { var msg = new SendGridMessage() { From = new EmailAddress("*****@*****.**", "RunIt"), Subject = "Reset password", TemplateId = "3291d65a-ac51-442e-b359-74c30e3c9c04" }; msg.AddTo(new EmailAddress(toEmail, toName)); msg.AddSubstitution("{{name}}", toName); msg.AddSubstitution("{{link}}", url); var response = await client.SendEmailAsync(msg); return(await CheckResponse(response)); }
public async Task SendParkingReceipt(Wallet wallet, string Id, string Amount, string parkingId) { User user = await context.Users.FindAsync(Id); Parking parking = await context.Parking.FindAsync(parkingId); DateTime paymentTime = DateTime.Now; //This key is for authentication in SendGrid API var sendGridAPIKey = Environment.GetEnvironmentVariable("SENDGRID_KEY"); //Initializing new instance of the API client var mailClient = new SendGridClient(sendGridAPIKey); //Initializing new message var message = new SendGridMessage() { From = new EmailAddress("*****@*****.**", "ParkKL"), }; //Configuring the E-mail message to fit a saved template message.SetTemplateId("12ee3b1e-cca1-4844-ad8b-d0f78fd87299"); message.AddSubstitution("-FIRST-", user.FirstName); message.AddSubstitution("-DATE-", paymentTime.ToString("g")); message.AddSubstitution("-LOCATION-", parking.LocationName); message.AddSubstitution("-PLATE-", parking.CarPlateNumber); message.AddSubstitution("-DURATION-", parking.ParkedHours.ToString()); message.AddSubstitution("-AMOUNT-", Amount); message.AddSubstitution("-BALANCE-", wallet.Balance.ToString()); message.AddTo(new EmailAddress(wallet.Email, "User")); //Sending the E-mail message var response = await mailClient.SendEmailAsync(message); }
public static void SendIncidentSubmissionAdminEmail(Incident incident, ApiServices Services) { SendGridMessage submissionMessage = new SendGridMessage(); IncidentInfo submisionIncident = new IncidentInfo(incident); submissionMessage.From = SendGridHelper.GetAppFrom(); submissionMessage.AddTo(WebConfigurationManager.AppSettings["RZ_SysAdminEmail"]); submissionMessage.Html = " "; submissionMessage.Text = " "; submissionMessage.Subject = " [" + WebConfigurationManager.AppSettings["MS_MobileServiceName"] + "]"; submissionMessage.EnableTemplateEngine(WebConfigurationManager.AppSettings["RZ_SubmisionTemplateID"]); submissionMessage.AddSubstitution("%timestamp%", new List <string> { submisionIncident.CreatedAt.ToString() }); submissionMessage.AddSubstitution("%incidentguid%", new List <string> { submisionIncident.IncidentGUID }); submissionMessage.AddSubstitution("%vehicledetails%", new List <string> { submisionIncident.IncidentVehicleInfo.RegistrationNumber }); submissionMessage.AddSubstitution("%name%", new List <string> { submisionIncident.IncidentUserInfo.Name }); submissionMessage.AddSubstitution("%phone%", new List <string> { submisionIncident.IncidentUserInfo.Phone }); submissionMessage.AddSubstitution("%email%", new List <string> { submisionIncident.IncidentUserInfo.Email }); submissionMessage.AddSubstitution("%jobdescription%", new List <string> { submisionIncident.JobCode }); submissionMessage.AddSubstitution("%location%", new List <string> { submisionIncident.LocationObj.RGDisplay }); // Create an Web transport for sending email. var transportWeb = new Web(SendGridHelper.GetNetCreds()); // Send the email. try { transportWeb.Deliver(submissionMessage); Services.Log.Info("New Incident Submission Email Sent to [" + submisionIncident.IncidentUserInfo.Email + "]"); } catch (InvalidApiRequestException ex) { for (int i = 0; i < ex.Errors.Length; i++) { Services.Log.Error(ex.Errors[i]); } } }
private SendGridMessage BuildOrderMessage(OrderEventBody eventBody) { var msg = new SendGridMessage(); msg.AddSubstitution("-firstname-", eventBody.Order.FromUser.FirstName); msg.AddSubstitution("-lastname-", eventBody.Order.FromUser.LastName); msg.AddSubstitution("-orderid-", eventBody.Order.ID); msg.AddSubstitution("-datesubmitted-", eventBody.Order.DateSubmitted.ToString()); msg.AddSubstitution("-subtotal-", eventBody.Order.Subtotal.ToString()); msg.AddSubstitution("-tax-", eventBody.Order.TaxCost.ToString()); msg.AddSubstitution("-shipping-", eventBody.Order.ShippingCost.ToString()); msg.AddSubstitution("-total-", eventBody.Order.Total.ToString()); msg.AddSubstitution("-lineitemcount-", eventBody.Order.LineItemCount.ToString()); return(msg); }
private SendGridMessage CreateDefaultMessage(string templateId) { var message = new SendGridMessage { From = new EmailAddress(_globalSettings.Mail.ReplyToEmail, _globalSettings.SiteName), HtmlContent = " ", PlainTextContent = " " }; if (!string.IsNullOrWhiteSpace(templateId)) { message.TemplateId = templateId; } message.AddSubstitution("{{siteName}}", _globalSettings.SiteName); message.AddSubstitution("{{baseVaultUri}}", _globalSettings.BaseVaultUri); return(message); }
/// <summary> /// Sends the mail batch using the SendGrid API /// </summary> /// <param name="mail">The mail.</param> /// <param name="recipients">The recipients.</param> /// <param name="onlyTestDontSendMail">if set to <c>true</c> [only test dont send mail].</param> /// <returns></returns> /// <exception cref="System.NotImplementedException"></exception> public override bool SendMailBatch(MailInformation mail, IEnumerable <JobWorkItem> recipients, bool onlyTestDontSendMail) { var settings = GetSettings(); if (recipients == null || recipients.Any() == false) { throw new ArgumentException("No workitems", "recipients"); } if (recipients.Count() > 1000) { throw new ArgumentOutOfRangeException("recipients", "SendGrid supports maximum 1000 recipients per batch send."); } var msg = new SendGridMessage(); msg.From = new MailAddress(mail.From); msg.Subject = mail.Subject; msg.Html = mail.BodyHtml; msg.Text = mail.BodyText; // Add recipinets to header, to hide other recipients in to field. List <string> addresses = recipients.Select(r => r.EmailAddress).ToList(); msg.Header.SetTo(addresses); msg.AddSubstitution("%recipient%", addresses); // To send message we need to have a to address, set that to from msg.To = new MailAddress[] { msg.From }; if (mail.EnableTracking) { // true indicates that links in plain text portions of the email // should also be overwritten for link tracking purposes. msg.EnableClickTracking(true); msg.EnableOpenTracking(); } if (mail.CustomProperties.ContainsKey("SendGridCategory")) { string category = mail.CustomProperties["SendGridCategory"] as string; if (string.IsNullOrEmpty(category) == false) { msg.SetCategory(category); } } var credentials = new NetworkCredential(settings.Username, settings.Password); // Create an Web transport for sending email. var transportWeb = new Web(credentials); transportWeb.Deliver(msg); return(true); }
private void ProcessTemplate(SendGridMessage message, IMailingTemplate mailingTemplate) { if (mailingTemplate != null) { message.SetTemplateId(mailingTemplate.TemplateId); foreach (var substitution in mailingTemplate.Substitution) { message.AddSubstitution(substitution.Key, substitution.Value?.ToString() ?? ""); } } }
private SendGridMessage GetMessage(INotification notification) { var applicationName = _appSettings.GetSetting(AppSettingKey.ApplicationName); var message = new SendGridMessage(); message.From = new MailAddress(_appSettings.GetSetting(AppSettingKey.FromEmail), applicationName); message.Subject = notification.Subject; message.AddTo(GetEmailTo(notification.EmailTo)); message.EnableTemplateEngine(notification.TemplateName); message.Text = " "; foreach (var templateContent in notification.TemplateContent) { message.AddSubstitution(GetReplacementTag(templateContent.Key), templateContent.Value.PutIntoList()); } message.AddSubstitution(GetReplacementTag("application_name"), applicationName.PutIntoList()); return(message); }
public async Task SendRemindersAsync(List <string> emailList, Occurrence occurrence) { Opportunity opportunity = occurrence.Opportunity; // string messageText = "Hey There! This is a reminder for your upcoming volunteer gig. " + // "Please reply to this email if you can no longer make the event."; string messageText = "Volunteers: " + String.Join("\n", emailList); SendGridMessage sendGridMessage = new SendGridMessage() { From = new EmailAddress(FromEmail, "Volly Team"), Subject = "Volly Reminder: " + opportunity.Name, TemplateId = "d-70aba37e40834a89b8afe3a1a9567bcd", HtmlContent = messageText, PlainTextContent = messageText }; DateTime startTime = VollyConstants.ConvertFromUtc(occurrence.StartTime); DateTime endTime = VollyConstants.ConvertFromUtc(occurrence.EndTime); sendGridMessage.AddSubstitution(":start", startTime.ToShortDateString() + " " + startTime.ToShortTimeString()); sendGridMessage.AddSubstitution(":end", endTime.ToShortDateString() + " " + endTime.ToShortTimeString()); sendGridMessage.AddSubstitution(":description", opportunity.Description); sendGridMessage.AddSubstitution(":address", opportunity.Address); sendGridMessage.AddSubstitution(":name", opportunity.Name); sendGridMessage.AddSubstitution(":image", opportunity.ImageUrl); var client = new SendGridClient(SendgridApiKey); sendGridMessage.AddTo(VollyConstants.AliceEmail); Response response = await client.SendEmailAsync(sendGridMessage); }
//This method will send account registration confirmation public async Task SendConfirmationEmail(User item) { //This key is for authentication in SendGrid API var sendGridAPIKey = Environment.GetEnvironmentVariable("SENDGRID_KEY"); //Initializing new instance of the API client var mailClient = new SendGridClient(sendGridAPIKey); //Initializing new message var message = new SendGridMessage() { From = new EmailAddress("*****@*****.**", "ParkKL"), }; //Initializing claims that will be included with the E-mail var claims = new Claim[] { new Claim(JwtRegisteredClaimNames.Sub, item.Id), new Claim(JwtRegisteredClaimNames.Email, item.Email) }; //Creating new JWT Security Token ClaimsIdentity claimsID = new ClaimsIdentity(claims); JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler(); JwtSecurityToken token = handler.CreateToken(null, null, claimsID, null, null, null); string encodedToken = handler.WriteToken(token); //Configuring the E-mail message to fit a saved template message.SetTemplateId("503f2077-dd34-43c1-994f-be61adbe6fd7"); message.AddSubstitution("-EMAIL-", item.Email); message.AddSubstitution("-FIRST-", item.FirstName); message.AddSubstitution("-TOKEN-", encodedToken); message.AddTo(new EmailAddress(item.Email, "User")); //Sending the E-mail message var response = await mailClient.SendEmailAsync(message); }
public void SendTeamVidEmail(ONRVideo.ModelTeamEmail _teamModelEmail) { try { var msg = new SendGridMessage() { From = new EmailAddress(_teamModelEmail.From, _teamModelEmail.FromName), Subject = _teamModelEmail.Subject }; List <EmailAddress> emailList = new List <EmailAddress>(); string toNames = string.Empty; //Holds the names that the amil will be adressed to ex: Dear Eric, Mike and Julie foreach (Volunteer volunteer in _teamModelEmail.TeamMembers) { emailList.Add(new EmailAddress(volunteer.email, string.Format("{0} {1}", volunteer.firstName, volunteer.lastName))); toNames += string.Format("{0}, ", volunteer.firstName); } msg.AddTos(emailList); //msg.AddTo(new EmailAddress("*****@*****.**", "")); msg.SetTemplateId(_teamModelEmail.EmailTemplateId); msg.AddSubstitution("ToNames", toNames); msg.AddSubstitution("TeamNumber", _teamModelEmail.TeamNumber.ToString()); msg.AddSubstitution("SoireeDate", _teamModelEmail.Soiree.ToLongDateString()); msg.AddSubstitution("YoutubeID", _teamModelEmail.YoutubeVideoID); msg.SetClickTracking(true, true); SendMail(msg).Wait(); } catch (Exception ex) { System.Diagnostics.Trace.TraceError(string.Format("Error when creating email for team {0}. Error Information : {1}, {2}", _teamModelEmail.TeamNumber, ex.Message, ex.InnerException)); } }
private SendGridMessage CreateDefaultMessage(string templateId) { var message = new SendGridMessage { From = new MailAddress(_globalSettings.Mail.ReplyToEmail, _globalSettings.SiteName), Html = " ", Text = " " }; if (!string.IsNullOrWhiteSpace(templateId)) { message.EnableTemplateEngine(templateId); } message.AddSubstitution("{{siteName}}", new List <string> { _globalSettings.SiteName }); message.AddSubstitution("{{baseVaultUri}}", new List <string> { _globalSettings.BaseVaultUri }); return(message); }
public async Task <IActionResult> ForgottenPassword(LoginViewModel vm, string apiKey) { var user = await _userManager.FindByNameAsync(vm.UserName); var confCode = await _userManager.GeneratePasswordResetTokenAsync(user); var callbackUrl = Url.Action( controller: "Home", action: "ResetPassword", values: new { userId = user.Id, code = confCode }, protocol: Request.Scheme); // The new SendGridClient with the API-key: var client = new SendGridClient(apiKey); // The message from SendGrid: var msg = new SendGridMessage { From = new EmailAddress("*****@*****.**", "Password Reset") }; // The reciever of the mail: msg.AddTo(vm.UserName); // The template id the email should use from SendGrid: msg.TemplateId = "8cfda5bc-a0a7-47da-9be7-b942c7a3669a"; // Set the substitution tag values from SendGrid Template: msg.AddSubstitution("forgottenPasswordLink", callbackUrl); msg.AddSubstitution("userName", vm.UserName); // Send the email async and get the response from API: var response = client.SendEmailAsync(msg).Result; return(RedirectToAction(nameof(Index))); }
public static void SendIncidentPaymentReceiptEmail(Payment payment, ApiServices Services) { SendGridMessage receiptMessage = new SendGridMessage(); IncidentInfo receiptIncident = new IncidentInfo(payment.IncidentGUID); receiptMessage.From = SendGridHelper.GetAppFrom(); receiptMessage.AddTo(receiptIncident.IncidentUserInfo.Email); receiptMessage.Html = " "; receiptMessage.Text = " "; receiptMessage.Subject = " "; receiptMessage.EnableTemplateEngine(WebConfigurationManager.AppSettings["RZ_ReceiptTemplateID"]); receiptMessage.AddSubstitution("%invoicestub%", new List <string> { receiptIncident.IncidentGUID.Substring(0, 5).ToUpper() }); receiptMessage.AddSubstitution("%name%", new List <string> { receiptIncident.IncidentUserInfo.Name }); receiptMessage.AddSubstitution("%jobdescription%", new List <string> { receiptIncident.JobCode }); receiptMessage.AddSubstitution("%servicefee%", new List <string> { receiptIncident.ServiceFee.ToString() }); receiptMessage.AddSubstitution("%datesubmitted%", new List <string> { DateTime.Now.ToShortDateString() }); receiptMessage.AddSubstitution("%paymentmethod%", new List <string> { receiptIncident.PaymentMethod }); receiptMessage.AddSubstitution("%paymentamount%", new List <string> { receiptIncident.PaymentAmount.ToString() }); // Create an Web transport for sending email. var transportWeb = new Web(SendGridHelper.GetNetCreds()); // Send the email. try { transportWeb.Deliver(receiptMessage); Services.Log.Info("Payment Receipt Email Sent to [" + receiptIncident.IncidentUserInfo.Email + "]"); } catch (InvalidApiRequestException ex) { for (int i = 0; i < ex.Errors.Length; i++) { Services.Log.Error(ex.Errors[i]); } } }
public static async Task <Response> SendLegacy(EmailAddress from, List <EmailAddress> to, string subject, string templateId, IDictionary <string, string> substitutions, string attachmentName = "", string attachmentBase64String = "") { var msg = new SendGridMessage(); msg.SetFrom(from); msg.AddTos(to); msg.SetSubject(subject); msg.SetTemplateId(templateId); if (attachmentName != string.Empty && attachmentBase64String != string.Empty) { msg.AddAttachment(attachmentName, attachmentBase64String); } substitutions.ToList().ForEach(sub => msg.AddSubstitution(sub.Key, sub.Value)); return(await Send(msg)); }
public async Task SendEmailAsync(string emailAddress, string url) { var apiKey = Environment.GetEnvironmentVariable("SG_YASC_API"); var client = new SendGridClient(apiKey); var from = new EmailAddress("*****@*****.**", "No Reply"); var subject = url; var to = new EmailAddress(emailAddress); var sgMsg = new SendGridMessage(); sgMsg.SetFrom(from); sgMsg.SetSubject(subject); sgMsg.AddTo(to); sgMsg.SetTemplateId("e08f6cd0-5b93-429e-9695-18640cb6e78a"); sgMsg.AddSubstitution("-domain-", url); await client.SendEmailAsync(sgMsg); }