private MandrillMessageStatus Send(MandrillSenderData senderData) { MandrillMessageStatus ms = new MandrillMessageStatus(); try { string jsonString = JsonConvert.SerializeObject(senderData); HttpWebRequest httpRequest = CreateRequest(_sendEndPoint); ms.messageResult = GetResponse <List <MandrillMessageResult> >(httpRequest, jsonString); ms.MessageSent = true; return(ms); } catch (WebException ex) { var wex = ex.Response; using (var streamReader = new StreamReader(wex.GetResponseStream())) { string result = streamReader.ReadToEnd(); ms.messageError = JsonConvert.DeserializeObject <MandrillMessageError>(result); streamReader.Close(); } ms.MessageSent = false; ms.MessageError = ex.Message; return(ms); } catch (Exception ex) { ms.MessageSent = false; ms.MessageError = ex.Message; return(ms); } }
/// <summary> /// Send a email message using Madrill Api. /// </summary> /// <param name="message">A Mandrill message type.</param> public MandrillMessageStatus Send(MandrillEmailMessage message) { if (!TestConnectionWithServer()) { throw new Exception("Without connection with Mandrill Server."); } try { MandrillSenderData senderData = new MandrillSenderData(); senderData.key = _key; senderData.message = message; senderData.async = false; senderData.ip_pool = "Main Pool"; senderData.send_at = DateTime.Now; return(Send(senderData)); } catch (Exception ex) { MandrillMessageStatus messageStatus = new MandrillMessageStatus(); messageStatus.MessageSent = false; messageStatus.MessageError = ex.Message; return(messageStatus); } }