本文整理汇总了C#中SendGrid.SendGridMessage.EnableOpenTracking方法的典型用法代码示例。如果您正苦于以下问题:C# SendGridMessage.EnableOpenTracking方法的具体用法?C# SendGridMessage.EnableOpenTracking怎么用?C# SendGridMessage.EnableOpenTracking使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SendGrid.SendGridMessage
的用法示例。
在下文中一共展示了SendGridMessage.EnableOpenTracking方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Send
public async Task<string> Send(IMessage message)
{
var msg = new SendGridMessage();
msg.Subject = message.Subject;
msg.From = new MailAddress(message.From);
msg.Html = message.Body;
msg.AddTo(message.To);
msg.EnableClickTracking();
msg.EnableOpenTracking();
try
{
var transportWeb = new Web(_apiKey);
await transportWeb.DeliverAsync(msg);
}
catch (Exception ex)
{
throw new MailerException(ex.Message, MailerException.enReason.RejectByProvider);
}
return null;
}
示例2: SendNotificationAsync
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;
}
示例3: Send
public void Send()
{
SendGridMessage client = new SendGridMessage();
client.From = new MailAddress(From);
client.AddTo(To);
client.Subject = Subject;
client.Text = Regex.Replace(Body, "<.*?>", string.Empty);
client.Html = Body.Replace("\r\n", "<br>");
client.EnableClickTracking();
client.EnableOpenTracking();
Web transport = new Web(ConfigurationManager.AppSettings[GetType().Name]);
transport.DeliverAsync(client).ConfigureAwait(false);
}
示例4: SendMailBatch
/// <summary>
/// Sends the mail batch using the SendGrid API
/// </summary>
/// <param name="mail">The mail.</param>
/// <param name="recipients">The recipients.</param>
/// <param name="onlyTestDontSendMail">if set to <c>true</c> [only test dont send mail].</param>
/// <returns></returns>
/// <exception cref="System.NotImplementedException"></exception>
public override bool SendMailBatch(MailInformation mail, IEnumerable<JobWorkItem> recipients, bool onlyTestDontSendMail)
{
var settings = GetSettings();
if (recipients == null || recipients.Any() == false)
throw new ArgumentException("No workitems", "recipients");
if (recipients.Count() > 1000)
throw new ArgumentOutOfRangeException("recipients", "SendGrid supports maximum 1000 recipients per batch send.");
var msg = new SendGridMessage();
msg.From = new MailAddress(mail.From);
msg.Subject = mail.Subject;
msg.Html = mail.BodyHtml;
msg.Text = mail.BodyText;
// Add recipinets to header, to hide other recipients in to field.
List<string> addresses = recipients.Select(r => r.EmailAddress).ToList();
msg.Header.SetTo(addresses);
msg.AddSubstitution("%recipient%", addresses);
// To send message we need to have a to address, set that to from
msg.To = new MailAddress[] { msg.From };
if (mail.EnableTracking)
{
// true indicates that links in plain text portions of the email
// should also be overwritten for link tracking purposes.
msg.EnableClickTracking(true);
msg.EnableOpenTracking();
}
if(mail.CustomProperties.ContainsKey("SendGridCategory"))
{
string category = mail.CustomProperties["SendGridCategory"] as string;
if (string.IsNullOrEmpty(category) == false)
msg.SetCategory(category);
}
var credentials = new NetworkCredential(settings.Username, settings.Password);
// Create an Web transport for sending email.
var transportWeb = new Web(credentials);
transportWeb.Deliver(msg);
return true;
}
示例5: Test_EnablingOpenTracking
public void Test_EnablingOpenTracking()
{
var mail = BasicMailBuilder
.EnableOpenTracking()
.Build();
var message = new SendGridMessage();
message.EnableOpenTracking();
Assert.IsFalse(string.IsNullOrEmpty(message.Header.JsonString()));
Assert.AreEqual(message.Header.JsonString(), mail.Header.JsonString());
}
示例6: EnableOpenTrackingEmail
/// <summary>
/// Enable the Open Tracking to track when emails are opened.
/// http://docs.sendgrid.com/documentation/apps/open-tracking/
/// </summary>
public void EnableOpenTrackingEmail()
{
//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 Plain Text</p>";
//set the message subject
message.Subject = "Hello World Open Tracking Test";
//create an instance of the Web transport mechanism
var transportInstance = new Web(new NetworkCredential(_username, _password));
//enable gravatar
message.EnableOpenTracking();
//send the mail
transportInstance.DeliverAsync(message);
}
示例7: SendEmailViaSendGrid
public static void SendEmailViaSendGrid(string to, string from, string subject, string htmlBody, MailType type, string textBody, string[] multipleTo = null)
{
try
{
//var message = SendGrid.GenerateInstance();
var message = new SendGridMessage();
if (String.IsNullOrEmpty(to))
message.AddTo(multipleTo);
else
message.AddTo(to);
//if (multipleTo != null)
// message.AddTo(multipleTo);
//else
// message.AddTo(to);
message.From = new System.Net.Mail.MailAddress(from);
message.Subject = subject;
if (type == MailType.TextOnly)
message.Text = textBody.Replace(@"\r\n", Environment.NewLine);
else if (type == MailType.HtmlOnly)
message.Html = htmlBody;
else
{
message.Html = htmlBody;
message.Text = textBody;
}
//Dictionary<string, string> collection = new Dictionary<string, string>();
//collection.Add("header", "header");
//message.Headers = collection;
message.EnableOpenTracking();
message.EnableClickTracking();
message.DisableUnsubscribe();
message.DisableFooter();
message.EnableBypassListManagement();
//var transportInstance = SMTP.GenerateInstance(new System.Net.NetworkCredential(SendGridUsername, SendGridPassword), SendGridSmtpHost, SendGridSmtpPort);
var transportInstance = new Web(new System.Net.NetworkCredential(SendGridUsername, SendGridPassword));
transportInstance.Deliver(message);
if (String.IsNullOrEmpty(to))
Console.WriteLine("SendGrid: Email was sent successfully to " + multipleTo);
else
Console.WriteLine("SendGrid: Email was sent successfully to " + to);
}
catch (Exception)
{
if (String.IsNullOrEmpty(to))
Console.WriteLine("SendGrid: Unable to send email to " + multipleTo);
else
Console.WriteLine("SendGrid: Unable to send email to " + to);
throw;
}
}
示例8: EnableOpenTracking
public void EnableOpenTracking()
{
var header = new Header();
var sendgrid = new SendGridMessage(header);
sendgrid.EnableOpenTracking();
var json = header.JsonString();
Assert.AreEqual("{\"filters\" : {\"opentrack\" : {\"settings\" : {\"enable\" : \"1\"}}}}", json);
}