我尝试发送电子邮件通知至列表、抄送列表和密件抄送列表,但收到错误消息,指出请求错误,成功代码为 false。
如果我不添加抄送、密件抄送列表,我可以发送电子邮件。你能帮我解决这个问题吗
var apiKey = "SG.xxxxxxxxxxxxxxxxxxxxxxxx"; //Environment.GetEnvironmentVariable("NAME_OF_THE_ENVIRONMENT_VARIABLE_FOR_YOUR_SENDGRID_KEY"); var client = new SendGridClient(apiKey); var msg = new SendGridMessage();
msg.From = new EmailAddress("[email protected]", "TechM");
msg.Subject = "Test email";
msg.PlainTextContent = "Sendgrid test email";
msg.HtmlContent = "<strong>Hello World!";
msg.Personalizations = new List<Personalization>
{
new Personalization
{
Tos = new List<EmailAddress>
{
new EmailAddress("[email protected]", "Eswar"),
new EmailAddress("[email protected]", "Test User-Eswar")
},
Ccs= new List<EmailAddress>()
{
new EmailAddress("[email protected]", "Eswar"),
new EmailAddress("[email protected]", "Test User-Eswar")
},
Bccs=new List<EmailAddress>()
{
new EmailAddress("[email protected]", "Eswar"),
new EmailAddress("[email protected]", "Test User-Eswar")
}
}
};
var response = await client.SendEmailAsync(msg);
var test = response.IsSuccessStatusCode;
}
to, cc, bcc
)时,sendgrid 不会发送电子邮件。您必须包含所有三个才能工作,或者从
Email List
中删除键。
例如:这就是我在
JS
中执行此操作的方法,其中 to
、bcc
和 cc
键仅在给出一些数据时才会添加。
const sendEmailObj = {
from: `goutham`,
...(to !== '' && {to: to?.split(',')}),
...(ccEmailAddress !== '' && {cc: ccEmailAddress?.split(',')}),
...(bccEmailAddress !== '' && {bcc: bccEmailAddress?.split(',')}),
template: 'temaplate-id',
subject: `Sendgrid Working`,
context: {
message: 'Hello world!'
},
};
我在使用 Sendgrid 时也遇到了同样的问题。 Sendgrid 不允许在“收件人”、“抄送”、“密件抄送”块中出现重复的电子邮件地址。
我收到的错误消息:
个性化数组中的每个唯一电子邮件地址只能包含一次。您已多次添加[电子邮件地址]。
SendGrid 文档
https://docs.sendgrid.com/api-reference/mail-send/errors#personalizationsbcc