public void GenerateRetryEmail(string ClientId) { try { log.Info("Generating Retry Email"); var emailService = new SMTPEmailService(MailSettings.SmtpSection().Network.Host); var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null; var payload = new EmailPayload { FromEmailAddress = MailSettings.SmtpSection().From, To = overrideToList != null && overrideToList.Count > 0 ? overrideToList : new List <string> { Config.Instance.EmailTooManyRetriesTo }, Subject = Config.Instance.EmailTooManyRetriesSubject, Body = $"Retry count has exceeded {Config.Instance.EmailTooManyRetriesCount} from client {ClientId}. Please review provided interface data.", IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { log.Error("Fail GenerateRetryEmail", e); } }
public void GenerateErrorMessageEmail(string Message) { try { log.Info("Generating ErrorMessage Email"); var emailService = new SMTPEmailService(MailSettings.SmtpSection().Network.Host); var overrideToList = MailSettings.EmailOverrideTo != null?MailSettings.EmailOverrideTo.ToList() : null; var payload = new EmailPayload { FromEmailAddress = MailSettings.SmtpSection().From, To = overrideToList.Count > 0 ? overrideToList : new List <string> { Config.Instance.EmailErrorMessageTo }, Subject = "CusRelService Error", Body = Message, IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { log.Error("Fail ErrorMessage Email", e); } }
public async Task <ActionResult> Invite([FromBody] EmailPayload emailPayload) { string[] inviteScopes = { "User.Invite.All" }; string accessToken = await _tokenAcquisition.GetAccessTokenForUserAsync(inviteScopes); GraphServiceClient graphClient = new GraphServiceClient( graphEndpoint, new DelegateAuthenticationProvider(async(requestMessage) => { requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); }) ); var invitation = new Invitation { InvitedUserEmailAddress = emailPayload.Email, InviteRedirectUrl = "https://redirect_guests_after_invitation_is_accepted", SendInvitationMessage = true }; try { invitation = await graphClient.Invitations.Request().AddAsync(invitation); } catch (Exception ex) { _logger.LogError(ex.Message); return(Problem(ex.Message)); } return(Ok()); }
public Result EmailTicketAssigned(Ticket ticket) { var result = new Result(); if (ticket != null) { var userResult = servicesProxy.UserService.GetUser(ticket.Assignment.Employee.Username); if (userResult.OK && userResult.User != null && userResult.User.GetsNotificationOnAssignment && IsValidEmail(userResult.User.Email)) { string emailSettings = servicesProxy.SettingsService.GetSetting("EmailTicketAssigned").Setting.Value; string emailCc = Regex.Match(emailSettings, "CC:([^|]*)").Groups[1].Value; string emailBcc = Regex.Match(emailSettings, "BCC:([^|]*)").Groups[1].Value; string emailSubject = Regex.Match(emailSettings, "SUBJECT:([^|]*)").Groups[1].Value; string emailBody = Regex.Match(emailSettings, "BODY:([^|]*)").Groups[1].Value; string[] overrideToList; smtpSettings.TryGetValue("OVERRIDETO", out overrideToList); try { var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault()); var payload = new EmailPayload { FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(), To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> { userResult.User.Email }, Subject = emailSubject.Replace("{Ticket.Id}", ticket.Id.ToString()), Body = emailBody. Replace("{Ticket.Id}", ticket.Id.ToString()). Replace("{Ticket.Priority}", ticket.Priority.HasValue ? ticket.Priority.Value.ToString() : "no priority"). Replace("<br />", "<br />\r\n"), CC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null), BCC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null), IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { result.SetFail(e); } } else { result.SetFail(string.Format("User {0} does not have a valid email or is not configured to receive notifications. Notification not sent.", ticket.Assignment.Employee.Username)); } } return(result); }
public Result EmailHighPriorityChange(Ticket Ticket) { var result = new Result(); if (Ticket != null) { if (IsValidEmail(Ticket.Assignment.GroupContact.Email)) { var emailDeptChange = servicesProxy.SettingsService.GetSetting("EmailHighPriorityChange").Setting.Value; var emailCc = Regex.Match(emailDeptChange, "CC:([^|]*)").Groups[1].Value; var emailBcc = Regex.Match(emailDeptChange, "BCC:([^|]*)").Groups[1].Value; var emailSubject = Regex.Match(emailDeptChange, "Subject:([^|]*)").Groups[1].Value; emailSubject = emailSubject.Replace("{Ticket.Id}", Ticket.Id.ToString()); var emailBody = Regex.Match(emailDeptChange, "Body:([^|]*)").Groups[1].Value; emailBody = emailBody.Replace("{Ticket.Reasons}", Ticket.Reasons != null ? string.Join(", ", Ticket.Reasons.ToArray()) : ""); emailBody = emailBody.Replace("{Ticket.Id}", Ticket.Id.ToString()); emailBody = emailBody.Replace("{Ticket.Comments}", Ticket.Comments); emailBody = emailBody.Replace("<br />", "<br />\r\n"); try { var emailService = new SMTPEmailService(smtpSettings["HOST"].FirstOrDefault()); string[] overrideToList; smtpSettings.TryGetValue("OVERRIDETO", out overrideToList); var payload = new EmailPayload { FromEmailAddress = smtpSettings["FROM"].FirstOrDefault(), To = overrideToList != null && overrideToList.Length > 0 ? overrideToList.ToList() : new List <string> { Ticket.Assignment.GroupContact.Email }, Subject = emailSubject, Body = emailBody, CC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailCc) ? emailCc.Split(';').Select(a => a.Trim()).ToList() : null), BCC = overrideToList != null && overrideToList.Length > 0 ? null : (!string.IsNullOrEmpty(emailBcc) ? emailBcc.Split(';').Select(a => a.Trim()).ToList() : null), IsBodyHtml = true, }; emailService.Send(payload); } catch (Exception e) { result.SetFail(e); } } else { result.SetFail(string.Format("User {0} does not have a valid email. Unable to send notification.", Ticket.Assignment.Employee.Username)); } } return(result); }
private IActionResult SendMessageToBrocker <TMailjetEvent>(TMailjetEvent mailjetEvent) where TMailjetEvent : MailEvent { EmailPayload payload = null; if (!string.IsNullOrWhiteSpace(mailjetEvent.Payload)) { var jsonOptions = new JsonSerializerOptions { PropertyNameCaseInsensitive = true }; payload = JsonSerializer.Deserialize <EmailPayload>(mailjetEvent.Payload, jsonOptions); } if (payload is { Trackable : true })
public async void ChangeEmail(string email, string idToken) { EmailPayload p = new EmailPayload() { email = email, idToken = idToken }; string URL = "https://identitytoolkit.googleapis.com/v1/accounts:update?key=" + AuthKey; var res = await client.Post(URL, p); if (res.IsSuccessStatusCode) { Stream m = await res.Content.ReadAsStreamAsync(); Dictionary <string, object> data = await JsonSerializer.DeserializeAsync <Dictionary <string, object> >(m); } else { //todo } }
/// <summary> /// Add Customer Contact to database, then send Customer Feedback email /// </summary> /// <returns></returns> public ResponseResult SendToCusRelEntity() { var result = new ResponseResult(); try { var addCustomerResult = Repository.Context(requestState).AddCustomerContact(form); if (string.IsNullOrEmpty(requestState.FeedbackToEmail)) { result.OK = true; result.StatusCode = 200; } else if (addCustomerResult.OK) { var smtp = new SMTPEmailService(); var emailHeader = form.ActionEnum.Description().ToUpper(); var email = new EmailPayload { FromEmailAddress = form.Contact.SmtpEmail, To = new List <string> { requestState.FeedbackToEmail }, Subject = "AC Transit Public Customer Feedback " + emailHeader, Body = form.AsEmail(addCustomerResult.ID.ToString(CultureInfo.InvariantCulture), emailHeader), }; smtp.Send(email); result.OK = true; result.StatusCode = 200; } } catch (Exception e) { result = new ResponseResult(e) { StatusCode = 500, OK = false }; } return(result); }
public AccountDocument GetTransformedDocument(TradingAccountPayload payload, List <SyncFeedEntryLink> links) { AccountDocument document = new AccountDocument(); tradingAccounttype tradingAccount = payload.TradingAccount; document.addresses = new AddressDocumentCollection(); if (tradingAccount.postalAddresses != null && tradingAccount.postalAddresses != null) { foreach (postalAddresstype postalAddress in tradingAccount.postalAddresses) { PostalAddressPayload postalAdressPayload = new PostalAddressPayload(); postalAdressPayload.PostalAddresstype = postalAddress; postalAdressPayload.SyncUuid = StringToGuid(postalAddress.uuid); AddressDocument address = _postalAdressTransformation.GetTransformedDocument(postalAdressPayload, Helper.ReducePayloadPath(links)); document.addresses.Add(address); } } bool hasMainAdress = false; for (int index = 0; index < document.addresses.documents.Count; index++) { AddressDocument address = document.addresses.documents[index] as AddressDocument; if ((address.primaryaddress.Value != null) && (address.primaryaddress.Value.ToString().Equals("true", StringComparison.InvariantCultureIgnoreCase))) { hasMainAdress = true; } } if ((!hasMainAdress) && (document.addresses.documents.Count > 0)) { AddressDocument address = document.addresses.documents[0] as AddressDocument; address.primaryaddress.Value = "true"; } if (String.IsNullOrEmpty(payload.LocalID)) { document.CrmId = payload.SyncUuid.ToString();// document.Id = GetLocalId(payload.SyncUuid); } else { document.Id = payload.LocalID; } document.currencyid.Value = tradingAccount.currency; document.emails = new EmailsDocumentCollection(); if (tradingAccount.emails != null && tradingAccount.emails != null) { foreach (emailtype email in tradingAccount.emails) { EmailPayload emailPayload = new EmailPayload(); emailPayload.Emailtype = email; emailPayload.SyncUuid = StringToGuid(email.uuid); EmailDocument emailDocument = _emailAdressTransformation.GetTransformedDocument(emailPayload, Helper.ReducePayloadPath(links)); document.emails.Add(emailDocument); } } document.name.Value = tradingAccount.name; // ????? document.onhold document.people = new PeopleDocumentCollection(); if (tradingAccount.contacts != null && tradingAccount.contacts != null) { foreach (contacttype contact in tradingAccount.contacts) { ContactPayload contactPayload = new ContactPayload(); contactPayload.Contacttype = contact; contactPayload.SyncUuid = StringToGuid(contact.uuid); PersonDocument person = _contactTransformation.GetTransformedDocument(contactPayload, Helper.ReducePayloadPath(links)); document.people.Add(person); } } bool hasMainPerson = false; for (int index = 0; index < document.people.documents.Count; index++) { PersonDocument person = document.people.documents[index] as PersonDocument; if ((person.primaryperson.Value != null) && (person.primaryperson.Value.ToString().Equals("true", StringComparison.InvariantCultureIgnoreCase))) { hasMainPerson = true; } } if ((!hasMainPerson) && (document.people.documents.Count > 0)) { PersonDocument person = document.people.documents[0] as PersonDocument; person.primaryperson.Value = "true"; } document.phones = new PhonesDocumentCollection(); if (tradingAccount.phones != null && tradingAccount.phones != null) { foreach (phoneNumbertype phoneNumber in tradingAccount.phones) { PhoneNumberPayload phoneNumberPayload = new PhoneNumberPayload(); phoneNumberPayload.PhoneNumbertype = phoneNumber; //phoneNumberPayload.SyncUuid = GetUuid(phoneNumber.applicationID); PhoneDocument phone = _phoneNumberTransformation.GetTransformedDocument(phoneNumberPayload, Helper.ReducePayloadPath(links)); document.phones.Add(phone); } } document.customerSupplierFlag.Value = tradingAccount.customerSupplierFlag; return(document); }
public async Task <EmailResponse> SendAsync(string title, string rawMessage, string htmlMessage, string[] recipients) { if (!string.IsNullOrWhiteSpace(title) && (!string.IsNullOrWhiteSpace(rawMessage) || !string.IsNullOrWhiteSpace(htmlMessage)) && recipients.AnyAndNotNull()) { var to = new List <string>(recipients); var payload = new EmailPayload { ApiKey = ApiKey, To = to, Sender = Sender, Subject = title, Text = rawMessage, Html = htmlMessage, Headers = new List <EmailPayloadCustomHeader> { new EmailPayloadCustomHeader { Header = "Reply-To", Value = ReplyTo } } }; using (var request = new HttpRequestMessage(HttpMethod.Post, "email/send")) { request.Content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json"); using (var httpClient = new HttpClient() { BaseAddress = new Uri(Host) }) { var response = await httpClient.SendAsync(request); var error = await response.Content.ReadAsStringAsync(); try { var status = response.EnsureSuccessStatusCode(); } catch (Exception ex) { return(new EmailResponse { Message = ex.Message }); } } } return(new EmailResponse()); } return(new EmailResponse { Message = "Pusta wiadomość nie będzie wysłana" }); }