private async void SendEmail(string userId, int expenseId) { // Fire and forget try { string resourceUri = _config.GetSection("api").GetSection("postSendEmail").Value; string url = $"{ _config.GetSection("api").GetSection("baseUrl").Value}{resourceUri}"; RequestSendEmail reqSendEmail = new RequestSendEmail() { UserId = userId, ExpenseId = expenseId }; using (var client = new HttpClient()) using (var request = new HttpRequestMessage(HttpMethod.Post, url)) using (var httpContent = new UtilHttpContent().CreateHttpContent(reqSendEmail)) { request.Content = httpContent; using (var response = await client .SendAsync(request, HttpCompletionOption.ResponseHeadersRead)) { if (response.StatusCode == System.Net.HttpStatusCode.OK) { // var content = await response.Content.ReadAsStringAsync(); // return StatusCode((int)response.StatusCode, content); // LOG Success } } } } catch (Exception ex) { string msg = ex.Message; // LOG ERROR } }
internal void DoSendEmail(RequestSendEmail req) { if (req.Client == null) { SendMail(req.Action, req.Date); } else { SendMail(req.Action, req.Date, req.Client); } }
///====== Message methods ====== //@Headers({ "Content-Type: application/json"}) //@POST("api/v1/sendemail") //Call<ResponseCodes> sendEmail(@Body RequestSendEmail requestSendEmail); public async Task <ResponseCount> SendEmailAsync(RequestSendEmail requestSendEmaile) { var uri = new Uri(baseUri + @"api/v1/sendemail"); // Сформировать JSON данные string jsonContent = JsonConvert.SerializeObject(requestSendEmaile); HttpResponseMessage httpResponse = await cmd.PostAsync(uri, jsonContent); ResponseCount responseCount = new ResponseCount(); if (httpResponse.IsSuccessStatusCode) { responseCount = JsonConvert.DeserializeObject <ResponseCount>(httpResponse.Content.ToString()); } else { responseCount.Error = true; responseCount.ErrCode = ""; responseCount.ErrMsg = "Ошибка HttpClient."; } return(responseCount); }
public void SimulatedMailTest() { Notifier _notif = new Notifier(); // Eliminar archivo de email creado en prueba anteriores if (System.IO.File.Exists(Notifier.EmailFile)) { System.IO.File.Delete(Notifier.EmailFile); } // Creando system config SystemConfigData syscfg = new SystemConfigData(); syscfg.SMtpServer = "smtp.test"; syscfg.Source = "*****@*****.**"; syscfg.Destination = "*****@*****.**"; syscfg.Password = "******"; _notif.ReceiveSystemConfig(new SendSystemConfig(syscfg)); _notif.Start(); RequestSendEmail req = new RequestSendEmail(EMessageAction.SysStart, DateTime.Now); _notif.SendEmail(req); Assert.IsNotNull(_notif.SmtpClient); Assert.IsTrue(System.IO.File.Exists(Notifier.EmailFile)); _notif.Stop(); if (System.IO.File.Exists(Notifier.EmailFile)) { System.IO.File.Delete(Notifier.EmailFile); } }
// public async void Post([FromBody] RequestSendEmail requestSendEmail) public async Task <ActionResult <string> > Post([FromBody] RequestSendEmail requestSendEmail) { // Fire and forget /** iwr -Method POST -Uri https://ms-expense-react-func-app.azurewebsites.net/api/onExpSubmittedAddToQueToCreatePdfAndSendMail?code=<<...get..from...azure...fn..>> * -Headers @{ "content-type"="application/json" } * -Body `{user: {userId: 'user1'}, expenseId: 2}` */ try { string url = _configuration.GetSection("Api").GetSection("SendGridEmail").Value; using (var client = new HttpClient()) using (var request = new HttpRequestMessage(HttpMethod.Post, url)) using (var httpContent = new UtilHttpContent().CreateHttpContent(requestSendEmail)) { request.Content = httpContent; using (var response = await client .SendAsync(request, HttpCompletionOption.ResponseHeadersRead)) { if (response.StatusCode == System.Net.HttpStatusCode.OK) { // var content = await response.Content.ReadAsStringAsync(); // return StatusCode((int)response.StatusCode, content); // LOG Success } return(response.Content.ToString()); } } } catch (Exception ex) { // LOG ERROR string error = ex.Message.ToString(); return(null); } }
public void SendEmail(RequestSendEmail req) { DoSendEmail(req); }