public ExternalEmail(Email email) { EmailReference = email.EmailReference; ToAddresses = StringifyEmailAddresses(email.To); FromAddress = $"LetMe <{email.FromAddress.Email}>"; Cc = StringifyEmailAddresses(email.Cc); Bcc = StringifyEmailAddresses(email.Bcc); Subject = email.Subject; PlainTextBody = email.PlainText; HtmlBody = email.Html; Attachments = new List<ExternalAttachment>();//TODO EmailDate = new DateTime();//the server will stamp the email outbound }
public HttpResponseMessage SendEmail(Email email) { var result = false; //Use external service to actually send the email var sendResult = SendExternalEmail(email); //create a record in comms if successful if (sendResult) result = _emailService.CreateEmail(Mapper.Map<Core.Objects.Email>(email), false); return result ? new HttpResponseMessage { StatusCode = HttpStatusCode.Created } : new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError }; }
private bool SendExternalEmail(Email email) { var jsonEmail = JsonConvert.SerializeObject(new ExternalEmail(email)); var client = new RestClient { BaseUrl = new Uri("https://letme-transactionalemail.azurewebsites.net/api"), Authenticator = new HttpBasicAuthenticator(_apiAuthenticationSettings.AppId, _apiAuthenticationSettings.ApiKey) }; var request = new RestRequest("/mail", Method.POST); request.RequestFormat = DataFormat.Json; request.AddHeader("Accept", "application/json"); request.Parameters.Clear(); request.AddParameter("application/json", jsonEmail, ParameterType.RequestBody); var response = client.Execute(request); return response.StatusCode != HttpStatusCode.InternalServerError; }
public HttpResponseMessage UpdateEmail(string emailReference, Email email) { var result = _emailService.UpdateEmail(emailReference, Mapper.Map<Core.Objects.Email>(email)); return result ? new HttpResponseMessage { StatusCode = HttpStatusCode.OK } : new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError }; }