Windows Defender防火墙阻止了sendgrid

时间:2019-08-18 11:16:10

标签: c# sendgrid

我将sendgrid设置为使用Web api(而不是smtp中继)来发送电子邮件。 我按照C#上的说明发送电子邮件,包括创建api密钥环境变量和安装nuget包sendgrid。

在调用client.SendEmailAsync(msg)之后,返回的响应为“已接受”,表示一切正常。但是我的测试电子邮件中没有收到电子邮件。

关闭Windows Defender防火墙后,已发送电子邮件。所以我认为防火墙阻止了我发送电子邮件?

我的问题是,如何在防火墙中添加sendgrid的例外设置,以允许来自sendgrid的传出电子邮件?或者我错过了sendgrid或防火墙中是否都存在配置?

代码:

        var apiKey = Environment.GetEnvironmentVariable("SendGridApiKey");
        var client = new SendGridClient(apiKey);
        var from = new EmailAddress("test@example.com", "Example User");
        var subject = "Sending with SendGrid is Fun";
        var to = new EmailAddress("my_outlook_email_here", "Example User");
        var plainTextContent = "and easy to do anywhere, even with C#";
        var htmlContent = "<strong>and easy to do anywhere, even with C#</strong>";
        var msg = MailHelper.CreateSingleEmail(from, to, subject, plainTextContent, htmlContent);
        var response = await client.SendEmailAsync(msg);

我在TCP和UDP的入站规则和出站规则中都添加了端口25和587,以在Windows防火墙中打开端口,但是电子邮件仍然无法发送。

1 个答案:

答案 0 :(得分:0)

虽然这是一个老问题,但我的防火墙也有类似的问题。我必须允许从 sendgrid 服务器(传出接口)到我的 DMZ(传入接口,我的网站所在的接口)的 HTTPS 传输。用于从我的服务器 54.155.98.0 发送网格的地址。