我正在尝试发送带有特定动态模板和数据的电子邮件。电子邮件已成功发送,但包含空数据。handle 方法是 Azure Function 的一部分。最近我将 Newtonsoft JSON 更改为 System.Text.Json,这可能会导致一些问题。
C#代码:
public async Task Handle(SendEmailCommand command)
{
var client = new SendGridClient(emailConfig.SendGridApiKey);
var msg = new SendGridMessage();
msg.SetFrom(new EmailAddress(emailConfig.Sender));
msg.AddTo(new EmailAddress(command.To));
msg.SetTemplateId(command.SendGridTemplateId);
if (command.SendGridDynamicTemplateData != null)
{
var templateData = new TemplateData();
command.SendGridDynamicTemplateData.TryGetValue("topic", out var topic);
command.SendGridDynamicTemplateData.TryGetValue("email", out var email);
command.SendGridDynamicTemplateData.TryGetValue("name", out var name);
command.SendGridDynamicTemplateData.TryGetValue("message", out var message);
templateData.Topic = topic.ToString();
templateData.Email = email.ToString();
templateData.Name = name.ToString();
templateData.Message = message.ToString();
msg.SetTemplateData(templateData);
}
await client.SendEmailAsync(msg);
}
private class TemplateData
{
[JsonPropertyName("topic")]
public string Topic { get; set; }
[JsonPropertyName("email")]
public string Email { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("message")]
public string Message { get; set; }
}
难道我做错了什么?