从ASP.Net Framework 3.5发送带有SendGrid API的电子邮件

时间:2017-10-29 22:08:11

标签: c# asp.net sendgrid sendgrid-api-v3 sendgrid-api-v2

我尝试使用带有我已经拥有的API密钥的SendGrid API发送电子邮件。

问题是:我必须从旧的.net应用程序执行此操作,其asp.net框架版本为3.5(并且不能更改框架版本)

我没有找到有关如何实现它的有用信息。我发现的唯一代码使用SendGrid csharp libraries,而这些代码不支持asp.net framework 3.5

这是我找到的代码示例here,但我不能通过我的.net 3.5网络应用程序来完成这项工作:

// using SendGrid's C# Library - https://github.com/sendgrid/sendgrid-csharp
using System.Net.Http;
using System.Net.Mail;

var myMessage = new SendGrid.SendGridMessage();
myMessage.AddTo("test@sendgrid.com");
myMessage.From = new MailAddress("you@youremail.com", "First Last");
myMessage.Subject = "Sending with SendGrid is Fun";
myMessage.Text = "and easy to do anywhere, even with C#";

var transportWeb = new SendGrid.Web("SENDGRID_APIKEY");
transportWeb.DeliverAsync(myMessage);
// NOTE: If you're developing a Console Application, use the following so that the API call has time to complete
// transportWeb.DeliverAsync(myMessage).Wait();

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

你有几个选择。 SendGrid API使用HttpClient类来发出请求,这需要.NET 4+依赖。

  1. 您可以尝试使用RestSharp实现自己的实现,这与.NET 3.5兼容,SendGrid API使用您可以实现的接口。它只需要从github上的源代码进行调整。

    1. 使用.Net SMTP类发送电子邮件并根据SendGrid文档中的指南进行配置。

    2. 通过另一个运行.NET 4+的WebAPI代理请求,并通过实现自己的API简化进行这些调用所需的内容。使用类似WebClient类或RestSharp的方式进行调用。

  2. **报废,选项1比它看起来更难** ISendGridClient是一个奇怪的例子。它使用接口内部的实现来获取一些参数。看起来像2和3是不错的选择!