gpt4 book ai didi

c# - 使用 SendGrid 处理某些电子邮件时 DMARC 失败

转载 作者:行者123 更新时间:2023-12-03 03:53:17 24 4
gpt4 key购买 nike

我正在编写一个 C# 应用程序,可以使用 SendGridClient for .NET 发送电子邮件。到目前为止,一切都已准备就绪,并且可以持续运行很长时间。

但自最近几天以来,一些电子邮件不再转发到其目标地址。 GMX 和 Outlook 可以使用,但 Gmail 不能使用。由于 DMARC 失败,这些地址在 SendGrid 事件列表中列为“已阻止”。

我发送邮件如下:

SendGridClient client = new SendGridClient(sendGridID);     
EmailAddress from = new EmailAddress("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="97efefefd7faeef3f8faf6fef9b9f4f8fa" rel="noreferrer noopener nofollow">[email protected]</a>", "My Sender");
EmailAddress to = new EmailAddress(customerEmail, customerName);

var subject = "Account has been created";
var textContent = "Your account has been successfully created";
var htmlContent = "Some Text";

var msg = MailHelper.CreateSingleEmail(from, to, subject, textContent, htmlContent);
await client.SendEmailAsync(msg);

我检查了DKIM和SPD,似乎都没有问题。我真的不明白问题是什么。我读到有关电子邮件域未对齐的信息,因为我是从 mydomain.com 发送的,但邮件本身来自 sendgrid.net。这是问题所在吗?我该如何解决?我无法从 sendgrid.net 发送,因为这不是我的源域。由于我不是 SendGrid 专业人士.. SendGrid 中有没有办法对此进行配置?

最佳答案

阻止发生在您的邮件因与邮件相关的原因而不是收件人地址而被拒绝时。当您的邮件服务器 IP 地址已添加到拒绝列表、被 ISP 阻止,或者邮件内容被接收服务器上的过滤器标记。

“封锁原因”将阐明确切的原因是什么。通常,可以将您的 IP 地址从拒绝列表中删除,并且某些列表会在一段时间后自动执行此操作。可以修改消息内容以更正过滤的 block 。

此外,您可以使用地址白名单将 Gmail 域列入白名单。地址白名单设置将永远不应抑制其邮件的指定电子邮件地址或域列入白名单。例如,您拥有域 example.com,并且您的一个或多个收件人使用 [email protected]地址,通过将 example.com 放入地址白名单设置中,该域记录的所有退回邮件、阻止和取消订阅都将被忽略,并像在正常发送条件下一样发送。

邮件设置允许您告诉 Twilio SendGrid 对通过 Twilio SendGrid 发送给收件人的每封电子邮件执行的具体操作 Web APISMTP Relay .

C# 代码:

string data = @"{
'enabled': true,
'list': [
'<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="5c39313d35306d1c39243d312c3039723f3331" rel="noreferrer noopener nofollow">[email protected]</a>',
'example.com'
]
}";
var json = JsonConvert.DeserializeObject<Object>(data);
data = json.ToString();
var response = await client.RequestAsync(method: SendGridClient.Method.PATCH, urlPath: "mail_settings/address_whitelist", requestBody: data);
Console.WriteLine(response.StatusCode);
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
Console.WriteLine(response.Headers.ToString());
Console.ReadLine();

关于c# - 使用 SendGrid 处理某些电子邮件时 DMARC 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65668629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com