为什么SengGrid API-v3的C#库在虚构的电子邮件中发送给SetFrom方法get坏请求



我使用SendGrid提供的Senddrid C#库来发送消息。我有动态模板。用户点击后,它会发送带有动态字段的电子邮件。

所以问题是,通过某种方式,我不能使用虚构的电子邮件,因为我必须使用真实的/激活的电子邮件。以防万一,输入是有效的,或者从appseting.js获得,并且也是有效的。它的问题是";SetFrom";方法模板id或app_key 没有问题

真正的电子邮件-例如,我指的是我可以登录并发送消息的电子邮件!假电子邮件-用作存根。例如no-reply@gmail.com

private async Task mySendEmail(string toAddress, string templateId, JObject dynamicTemplateData, string? toWhome = null, string? setFromEmail = null, string? setFromName = null)
{
if (setFromEmail is null)
setFromEmail = sendGridConfig.SendGridApiFrom;
if (setFromName is null)
setFromName = sendGridConfig.SendGridApiFromDisplayName;
// var foo = sendGridConfig.SendGridApiKey;
var client = new SendGridClient(sendGridConfig.SendGridApiKey);
var msg = new SendGridMessage();

msg.AddTo(new EmailAddress(toAddress, toWhome));
//msg.SetFrom("my-real-email@gmail.com", setFromName); // if using real email it works
msg.SetFrom(new EmailAddress("test@example.com", "Example User 0")); // fictional email have bad requests
msg.SetTemplateData(dynamicTemplateData);
msg.SetTemplateId(templateId);

var response = await client.SendEmailAsync(msg); // Bad request

}

结果的输出

{"from":{"name":"Example User 0","email":"test@example.com"},"personalizations":[{"to":[{"name":"Stone Ocean","email":"count_zero@inbox.lv"}],"dynamic_template_data":{"url":"CUCUMBER@INBOX.LV","password":"TEREMOK"}}],"template_id":"d-2f393a3c5ca7451ea856fc1acadf0bd7"}
Forbidden
{"errors":[{"message":"The from address does not match a verified Sender Identity. Mail cannot be sent until this error is resolved. Visit https://sendgrid.com/docs/for-developers/sending-email/sender-identity/ to see the Sender Identity requirements","field":"from","help":null}]}
Connection: keep-alive
Access-Control-Allow-Origin: https://sendgrid.api-docs.io
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: Authorization, Content-Type, On-behalf-of, x-sg-elas-acl
Access-Control-Max-Age: 600
X-No-CORS-Reason: https://sendgrid.com/docs/Classroom/Basics/API/cors.html
Strict-Transport-Security: max-age=600; includeSubDomains
Date: Thu, 24 Nov 2022 07:37:40 GMT
Server: nginx

有什么想法吗?为什么SetFrom需要真实的电子邮件而不是虚构的,以及如何避免它?

根据SendGrid,发件人的电子邮件(从发件人发送的电子邮件)必须经过SendGrid的验证才能从中发送电子邮件。否则,请求会引发错误。为什么点击

相关内容

最新更新