C# Windows Defender防火墙正在阻止sendgrid
我将sendgrid设置为使用web api(而不是smtp中继)发送电子邮件。 我按照C#如何发送电子邮件的说明进行操作,包括创建api密钥环境变量和安装nuget package sendgrid 调用client.sendmailasync(msg)后,返回的响应为“已接受”,表示一切正常。但在我的测试电子邮件上没有收到任何电子邮件 关闭Windows Defender防火墙后,已发送电子邮件。所以我认为防火墙阻止了我发送电子邮件 我的问题是,如何在防火墙中为sendgrid添加例外设置,以允许sendgrid发送电子邮件,或者sendgrid或防火墙中是否存在我遗漏的配置 守则:C# Windows Defender防火墙正在阻止sendgrid,c#,sendgrid,C#,Sendgrid,我将sendgrid设置为使用web api(而不是smtp中继)发送电子邮件。 我按照C#如何发送电子邮件的说明进行操作,包括创建api密钥环境变量和安装nuget package sendgrid 调用client.sendmailasync(msg)后,返回的响应为“已接受”,表示一切正常。但在我的测试电子邮件上没有收到任何电子邮件 关闭Windows Defender防火墙后,已发送电子邮件。所以我认为防火墙阻止了我发送电子邮件 我的问题是,如何在防火墙中为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);
var-apiKey=Environment.GetEnvironmentVariable(“SendGridApiKey”);
var client=新的SendGridClient(apiKey);
var from=新电子邮件地址(“test@example.com“,”示例用户“);
var subject=“使用SendGrid发送很有趣”;
var to=新电子邮件地址(“我的outlook电子邮件地址”,“示例用户”);
var plainTextContent=“而且在任何地方都可以轻松完成,即使使用C#”;
var htmlContent=“并且在任何地方都可以轻松完成,即使使用C#”;
var msg=MailHelper.CreateSingleEmail(发件人、收件人、主题、明文内容、htmlContent);
var response=wait client.sendmailasync(msg);
我将端口25和587添加到TCP和UDP的入站规则和出站规则中,以打开windows防火墙中的端口,但电子邮件不能静止发送。虽然这是一个老问题,但我的防火墙也有类似的问题。我必须允许HTTPS从sendgrid服务器(传出接口)传输到我的DMZ(传入接口,我的网站所在地)。我的服务器54.155.98.0中用于sendgrid的地址。允许smtp端口25和587。SMTP是一种HTTP类型,具有必须编码的特殊字符(请参阅)。电子邮件可能会失败,因为您没有对特殊字符进行编码。您可以使用System.Net.WebUtility.HtmlEncode(字符串)进行编码。你能解释一下你的电子邮件包含什么吗。任何附件以及您使用的模式。我用我的代码更新了上面的内容,以包括email@jdwengSMTP不是HTTP的一种类型。它与HTTP无关。SMTP发明于HTTP之前很长一段时间。