public void CreateMimeMessage() { var message = new SendGridMessage(); var attachment = Path.GetTempFileName(); var text = "this is a test"; var html = "<b>This<\b> is a better test"; var headers = new KeyValuePair<String, String>("custom", "header"); message.AddAttachment(attachment); message.Text = text; message.Html = html; message.AddTo("*****@*****.**"); message.From = new MailAddress("*****@*****.**"); message.AddHeaders(new Dictionary<string, string> {{headers.Key, headers.Value}}); message.EnableGravatar(); var mime = message.CreateMimeMessage(); var sr = new StreamReader(mime.AlternateViews[0].ContentStream); var result = sr.ReadToEnd(); Assert.AreEqual(text, result); sr = new StreamReader(mime.AlternateViews[1].ContentStream); result = sr.ReadToEnd(); Assert.AreEqual(html, result); result = mime.Headers.Get(headers.Key); Assert.AreEqual(headers.Value, result); result = mime.Headers.Get("X-Smtpapi"); var expected = "{\"filters\" : {\"gravatar\" : {\"settings\" : {\"enable\" : \"1\"}}}}"; Assert.AreEqual(expected, result); result = mime.Attachments[0].Name; Assert.AreEqual(Path.GetFileName(attachment), result); }
public override async Task<bool> SendNotificationAsync(PushNotificationItem notificationItem, object message, CancellationToken ct) { var cfg = (SendGridDeliveryProviderConfiguration)Configuration; var sent = false; //implicit conversion operator MailMessage smsg = message as SerializableMailMessage; if (smsg != null) { try { var hView = smsg.AlternateViews.First(v => v.ContentType.MediaType == "text/html"); var tView = smsg.AlternateViews.First(v => v.ContentType.MediaType == "text/plain"); var sendGridMessage = new SendGridMessage { To = new[] { new MailAddress(notificationItem.Destination.DestinationAddress, notificationItem.Destination.SubscriberName) }, From = new MailAddress(cfg.FromAddress, cfg.FromDisplayName), Subject = smsg.Subject, Html = hView.ContentStream.ReadToString(), Text = tView.ContentStream.ReadToString() }; if (cfg.EnableClickTracking ?? false) { sendGridMessage.EnableClickTracking(); } if (cfg.EnableGravatar ?? false) { sendGridMessage.EnableGravatar(); } if (cfg.EnableOpenTracking ?? false) { sendGridMessage.EnableOpenTracking(); } if (cfg.SendToSink ?? false) { sendGridMessage.SendToSink(); } var transport = new Web(cfg.ApiKey); await transport.DeliverAsync(sendGridMessage); sent = true; } catch { sent = false; //TODO: log this somewhere } } return sent; }
public void Test_EnablingGravatar() { var mail = BasicMailBuilder .EnableGravatar() .Build(); var message = new SendGridMessage(); message.EnableGravatar(); Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString())); Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString()); }
/// <summary> /// Enable The Gravatar Filter. /// Currently the filter generates a 1x1 pixel gravatar image. /// http://docs.sendgrid.com/documentation/apps/gravatar/ /// </summary> public void EnableGravatarEmail() { //create a new message object var message = new SendGridMessage(); //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 = "<p style='color:red';>Hello World Gravatar Email</p>"; //set the message subject message.Subject = "Hello World Gravatar Test"; //create an instance of the Web transport mechanism var transportInstance = new Web(new NetworkCredential(_username, _password)); //enable gravatar message.EnableGravatar(); //send the mail transportInstance.DeliverAsync(message); }
public MailBuilder EnableGravatar() { sendgrid.EnableGravatar(); return(this); }
public void EnableGravatar() { var header = new Header(); var sendgrid = new SendGridMessage(header); sendgrid.EnableGravatar(); var json = header.JsonString(); Assert.AreEqual("{\"filters\" : {\"gravatar\" : {\"settings\" : {\"enable\" : \"1\"}}}}", json); }