Пример #1
0
        /// <summary>
        /// Unsubscribe a user from communications
        /// </summary>
        /// <param name="survey"></param>
        //public void Unsubscribe(string email)
        //{
        //    // Create the contact if it doesn't exist
        //    var contact = (from x in appCxt.Contacts
        //                   where x.Email == email
        //                   select x).FirstOrDefault();

        //    if (contact != null)
        //    {
        //        contact.IsSubscribed = false;
        //        appCxt.Contacts.Update(contact);
        //        appCxt.SaveChanges();
        //    }
        //    else
        //    {
        //        throw new ArgumentException($"Unable to find user {email}");
        //    }
        //}


        public RestResponse SendConfirmationEmail(IO.Models.Contact newContact, string emailTemplatePath)
        {
            string text;

            using (var reader = new System.IO.StreamReader(emailTemplatePath, System.Text.Encoding.UTF8))
            {
                text = reader.ReadToEnd();
            }

            RestClient client = new RestClient();

            client.BaseUrl       = new Uri("https://api.mailgun.net/v3/");
            client.Authenticator =
                new HttpBasicAuthenticator("api", apiKey);
            RestRequest request = new RestRequest();

            request.AddParameter("domain", "drivenstudents.org", ParameterType.UrlSegment);
            request.Resource = "{domain}/messages";
            request.AddParameter("from", FormatEmail(_fromName, _fromEmail));
            request.AddParameter("to", FormatEmail(newContact));
            request.AddParameter("subject", "Thanks for taking our survey");
            request.AddParameter("html", text);
            request.Method = Method.POST;
            return((RestResponse)client.Execute(request));
        }
Пример #2
0
 /// <summary>
 /// Format the email in a way that mail gun can use
 /// </summary>
 /// <param name="newContact"></param>
 /// <returns></returns>
 private string FormatEmail(IO.Models.Contact newContact)
 {
     return(FormatEmail(newContact.FirstName + " " + newContact.LastName, newContact.Email));
 }