如何使用模板发送 Sendgrid 电子邮件并为模板添加自定义数据?
How do I send a Sendgrid email using a template and add custom data for the template?
我可以发送简单的电子邮件,也可以使用带有 TemplateId 的特定模板发送电子邮件,如下例所示,但是
问题 - 我如何在下方发送此模板并添加或包含车把数据(例如 {"name":"Mike", "url": "some_url", "日期":"04/18/2022})?
仅供参考 - 我找不到任何显示任何 C# 示例的文档。我确实找到了 link to create a transactional template,但它没有发送电子邮件。所以不确定这是否是我要找的...
var client = new SendGridClient(Options.SendGridKey);
var msg = new SendGridMessage() {
From = new EmailAddress(fromEmailAddress, fromEmailName),
Subject = subject,
PlainTextContent = message,
HtmlContent = message,
TemplateId = "d-30710e173a174ab58cc641nek3c980d4c"
};
var response = await client.SendEmailAsync(msg);
解决方案是您需要删除 PlainTextContent
和 HtmlContent
属性才能使用模板。此外,您需要提供一个包含占位符的 dynamicTemplateData
对象。
这是发送动态模板电子邮件 with and without the helper class 的两个代码示例(搜索 dynamic_template_data
和 dynamicTemplateData
)。因此,带有邮件助手 class 的完整代码段将是:
var apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY");
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress("test@example.com", "Example User"));
msg.AddTo(new EmailAddress("test@example.com", "Example User"));
msg.SetTemplateId("d-d42b0eea09964d1ab957c18986c01828");
var dynamicTemplateData = new ExampleTemplateData
{
Subject = "Hi!",
Name = "Example User",
Location = new Location
{
City = "Birmingham",
Country = "United Kingdom"
}
};
msg.SetTemplateData(dynamicTemplateData);
var response = await client.SendEmailAsync(msg);
PS:这里是 general API documentation 解释了可用的属性。
我可以发送简单的电子邮件,也可以使用带有 TemplateId 的特定模板发送电子邮件,如下例所示,但是
问题 - 我如何在下方发送此模板并添加或包含车把数据(例如 {"name":"Mike", "url": "some_url", "日期":"04/18/2022})?
仅供参考 - 我找不到任何显示任何 C# 示例的文档。我确实找到了 link to create a transactional template,但它没有发送电子邮件。所以不确定这是否是我要找的...
var client = new SendGridClient(Options.SendGridKey);
var msg = new SendGridMessage() {
From = new EmailAddress(fromEmailAddress, fromEmailName),
Subject = subject,
PlainTextContent = message,
HtmlContent = message,
TemplateId = "d-30710e173a174ab58cc641nek3c980d4c"
};
var response = await client.SendEmailAsync(msg);
解决方案是您需要删除 PlainTextContent
和 HtmlContent
属性才能使用模板。此外,您需要提供一个包含占位符的 dynamicTemplateData
对象。
这是发送动态模板电子邮件 with and without the helper class 的两个代码示例(搜索 dynamic_template_data
和 dynamicTemplateData
)。因此,带有邮件助手 class 的完整代码段将是:
var apiKey = Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY");
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress("test@example.com", "Example User"));
msg.AddTo(new EmailAddress("test@example.com", "Example User"));
msg.SetTemplateId("d-d42b0eea09964d1ab957c18986c01828");
var dynamicTemplateData = new ExampleTemplateData
{
Subject = "Hi!",
Name = "Example User",
Location = new Location
{
City = "Birmingham",
Country = "United Kingdom"
}
};
msg.SetTemplateData(dynamicTemplateData);
var response = await client.SendEmailAsync(msg);
PS:这里是 general API documentation 解释了可用的属性。