public void EnableUnsubscribe() { var header = new Header(); var sendgrid = new SendGrid(header); var text = "<% %>"; var html = "<% name %>"; var jsonText = "\"text\\/plain\" : \"" + text + "\""; var jsonHtml = "\"text\\/html\" : \"" + html + "\""; sendgrid.EnableUnsubscribe(text, html); var json = header.JsonString(); Assert.AreEqual("{\"filters\" : {\"subscriptiontrack\" : {\"settings\" : {\"enable\" : \"1\"," + jsonText + "," + jsonHtml + "}}}}", json); header = new Header(); sendgrid = new SendGrid(header); var replace = "John"; var jsonReplace = "\"replace\" : \"" + replace + "\""; sendgrid.EnableUnsubscribe(replace); json = header.JsonString(); Assert.AreEqual( "{\"filters\" : {\"subscriptiontrack\" : {\"settings\" : {\"enable\" : \"1\"," + jsonReplace + "}}}}", json); text = "bad"; html = "<% name %>"; Assert.Throws<Exception>(() => sendgrid.EnableUnsubscribe(text, html)); text = "<% %>"; html = "bad"; Assert.Throws<Exception>(() => sendgrid.EnableUnsubscribe(text, html)); }
/// <summary> /// Add automatic unsubscribe links to the bottom of emails. /// http://docs.sendgrid.com/documentation/apps/subscription-tracking/ /// </summary> public void EnableUnsubscribeEmail() { //create a new message object var message = new SendGrid(); //set the message recipients foreach (var recipient in _to) { message.AddTo(recipient); } //set the sender message.From = new MailAddress(_from); //set the message body message.Html = "This is the HTML body"; message.Text = "This is the plain text body"; //set the message subject message.Subject = "Hello World Unsubscribe Test"; //create an instance of the Web transport mechanism var transportInstance = new Web(new NetworkCredential(_username, _password)); //enable spamcheck //or optionally, you can specify 'replace' instead of the text and html in order to //place the link wherever you want. message.EnableUnsubscribe("Please click the following link to unsubscribe: <% %>", "Please click <% here %> to unsubscribe"); //send the mail transportInstance.Deliver(message); }