我正在尝试为电子邮件实施 SendGrid,但遇到了一些问题。我找到了 c# 的示例here,并基于此设置了一个快速桌面示例。我创建一个 WPF 应用程序并将其放入按钮处理程序中:
async void BtnSend_Click(object sender, RoutedEventArgs e)
{
var apikey = Environment.GetEnvironmentVariable("SENDGRID_API_KEY");
var client = new SendGridClient(apikey);
var from = new EmailAddress("<<my email>>", "me");
var to = new EmailAddress("<<test receiver email>>", "you");
var msg = new SendGridMessage();
msg.SetFrom(from);
msg.AddTo(to);
msg.SetTemplateId("<<my template id>>");
var response = await client.SendEmailAsync(msg);
MessageBox.Show($"Status: {response.StatusCode}\n\nHeaders:\n{response.Headers}");
}
但是,当我单击按钮时,我得到:
我确实访问了该标题上的网址,并在其他地方找到了它这里。然而,该链接谈论的是基于浏览器的,而这不是,而且它说使用我所在的库之一(我正在使用 c# NuGet 包)。
我做错了什么?我最终会将其放在我的 AWS lambda API 中的 Web 服务器上,所以我想如果我必须这样做来进行测试,我可以,但希望在将其移至服务器之前在桌面上进行一些测试和设置以熟悉。 .
如果启动Visual Studio后设置环境变量,则需要重新启动VS。 VS 使用 VS 本身启动时所拥有的环境变量集启动应用程序。如果您在 VS 启动后设置该变量,那么 VS 就没有它,因此您的应用程序也不会。
我遇到了同样的错误,并且该错误没有任何意义说明出了什么问题。
我发现我的配置中缺少
From
和 FromName
。所以在我的代码中,我使用 From
和 FromName
作为 null
来点击 SendGrid API。
这是我的情况,您可以检查一下是否遗漏了这些参数或其他参数,例如
To
电子邮件。或 API_KEY
或类似的东西。
希望有帮助!