本文介绍了SendGrid多个收件人c#的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用此代码从Web应用程序发送电子邮件。只有一个收件人没有问题。我研究过使用来自https://sendgrid.com/docs/Integrate/Code_Examples/v3_Mail/csharp.html的相同技术向多个收件人发送电子邮件。我尝试使用逗号分隔的字符串作为Destinatario(参见代码中的参数),即you@example.com,her@example.com,he@example.com,但SendGrid只接受第一个收件人。我也尝试使用数组,但结果类似,SG只接受最后一个接收者。传递收件人列表的正确方式是什么?
public class email
{
public void enviar(string destinatario, string asunto, string contenido)
{
Execute(destinatario, asunto, contenido).Wait();
}
static async Task Execute(string destinatario, string asunto, string contenido)
{
string apiKey = "SG...............";
dynamic sg = new SendGridAPIClient(apiKey);
Email from = new Email("someone@example.com");
string subject = asunto;
Email to = new Email(destinatario);
Content content = new Content("text/plain", contenido);
Mail mail = new Mail(from, subject, to, content);
dynamic response = await sg.client.mail.send.post(requestBody: mail.Get());
}
}
推荐答案
您需要为此添加个性化列表。以下代码对我有效。
var apiKey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
var client = new SendGridClient(apiKey);
var msg = new SendGridMessage()
{
From = new EmailAddress("sender@email.com", "Sender Name"),
Subject = "Subject",
PlainTextContent = "Text for body",
HtmlContent = "<strong>Hello World!",
Personalizations = new List<Personalization>
{
new Personalization
{
Tos = new List<EmailAddress>
{
new EmailAddress("abc@email.com", "abc"),
new EmailAddress("efg@email.com", "efg")
}
}
}
};
var response = await client.SendEmailAsync(msg);
有关更多详细信息,请查看Mail Send
这篇关于SendGrid多个收件人c#的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!