我设置了sendgrid以使用Web API(而不是SMTP中继)发送电子邮件。我按照C#发送电子邮件的说明进行操作,包括创建API密钥环境变量和安装SendGrid nuget包。
在调用client.SendEmailAsync(msg)后,返回的响应为“Accepted”,这意味着一切正常。但是,在我的测试电子邮件中没有收到任何电子邮件。
关闭Windows Defender防火墙后,电子邮件被发送。所以我认为防火墙正在阻止发送我的电子邮件?
我的问题是,如何在防火墙中添加sendgrid的异常设置以允许从sendgrid发送出站电子邮件,或者是否有sendgrid或防火墙中的配置是我忽略了的?
代码:
在调用client.SendEmailAsync(msg)后,返回的响应为“Accepted”,这意味着一切正常。但是,在我的测试电子邮件中没有收到任何电子邮件。
关闭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);
我已经将端口25和587添加到入站规则和出站规则中,无论是TCP还是UDP都开放了Windows防火墙的端口,但仍然无法发送电子邮件。