protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { using (var stream = await request.Content.ReadAsStreamAsync()) { var parameters = MultipartFormDataParser.Parse(stream); var from = parameters.Parameters.Where(x => x.Name == "from") .Select(x => GetSingleMailAddress(x.Data)) .FirstOrDefault(); var tos = parameters.Parameters.Where(x => x.Name == "to") .Select(x => GetMultipleMailAddress(x.Data)); var mailGunResponse = new MailGunResponse(); if (from == _validSenderMailAddress && tos.Any(x => x.Contains(_validRecipientMailAddress))) { mailGunResponse.Id = "<fake-domain.mailgun.org>"; mailGunResponse.Message = "Queued. Thank you."; } else { mailGunResponse.Id = string.Empty; } var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK); httpResponseMessage.Content = new ReadOnlyMemoryContent(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(mailGunResponse))); return(httpResponseMessage); } }
public bool SendMail(IMail mail, List <MailAttachments> lst) { mail.Map(); mail.Fill(); MailGunResponse result = sendEmail(mail.GetMail(), lst); if (!string.IsNullOrEmpty(result.id)) { return(true); } return(false); }
public bool SendMail(IMail mail) { mail.Map(); mail.Fill(); MailGunResponse result = sendEmail(mail.GetMail(), null); if (!string.IsNullOrEmpty(result.id)) { return(true); } return(false); }
private MailGunResponse sendEmail(MailParameters parameters, List <MailAttachments> attachments) { //parameters for the api request var APIMainUri = SystemVariableServ.GetSystemVariableValue("EmailApiUrl"); var MailgunDomain = SystemVariableServ.GetSystemVariableValue("EmailApiDomain"); var APIMessageEndpoint = SystemVariableServ.GetSystemVariableValue("EmailApiMessageEndpoint"); var APIUser = SystemVariableServ.GetSystemVariableValue("EmailApiUsername"); var APIKey = SystemVariableServ.GetSystemVariableValue("EmailApiKey"); RestClient client = new RestClient(); client.BaseUrl = new Uri(APIMainUri); client.Authenticator = new HttpBasicAuthenticator(APIUser, APIKey); RestRequest request = new RestRequest(); request.Method = Method.POST; request.AddParameter("domain", MailgunDomain, ParameterType.UrlSegment); request.Resource = "{domain}" + APIMessageEndpoint; if (parameters != null) { foreach (PropertyInfo cProperty in parameters.GetType().GetProperties()) { var cPropertyName = cProperty.Name; var cPropertyValue = cProperty.GetValue(parameters); if (cPropertyValue != null) { request.AddParameter(cPropertyName, cPropertyValue); } ; } } if (attachments != null && attachments.Count > 0) { foreach (var cAttachment in attachments.ToList()) { request.AddFileBytes("attachment", cAttachment.file, cAttachment.fileName, (cAttachment.contentType)); } } //IRestResponse response = client.Execute(request); //MailGunResponse result = Deserializer.Deserialize<MailGunResponse>(response.Content); MailGunResponse result = new MailGunResponse(); result.id = "set by async funtionality"; var Asyncresult = client.ExecuteAsync <MailGunResponse>(request, response => { }); return(result); }
public bool wellcomeEmail(string Email) { //variables string HtmlBody = string.Empty; string Subject = string.Empty; string From = SystemVariableServ.GetSystemVariableValue("EmailApiEmail"); string EmailMainTemplate = EmailTemplateServ.getMasterEmailTemplate("EmailEgulfBasicTemplate"); //instances CustomTemplateModel CustomTemplate = new CustomTemplateModel(); List <CustomTemplateSectionModel> CustomTemplateSections = new List <CustomTemplateSectionModel>(); //we get email templates CustomTemplate = EmailTemplateServ.getCustomTemplate(null, "WellcomeTemplate"); CustomTemplateSections = EmailTemplateServ.getCustomTemplateSections(CustomTemplate.CustomTemplateId); //we load basic template things and remove innecesary stuffs EmailMainTemplate = getReadyMainTemplate(EmailMainTemplate); EmailMainTemplate = removeTable(EmailMainTemplate); //we get template custom sections EmailMainTemplate = buildTemplateSections(EmailMainTemplate, CustomTemplateSections); EmailMainTemplate = EmailMainTemplate.Replace("#btn-url#", ""); EmailMainTemplate = EmailMainTemplate.Replace("#btn-start#", ""); EmailMainTemplate = EmailMainTemplate.Replace("#btn-end#", ""); HtmlBody = EmailMainTemplate; Subject = CustomTemplate.Subject; MailParameters parameters = new MailParameters(); parameters.from = From; parameters.to = Email; parameters.subject = Subject; parameters.html = HtmlBody; MailGunResponse result = sendEmail(parameters, null); if (!string.IsNullOrEmpty(result.id)) { return(true); } else { return(false); } }