-2
我正在寻找实施SendMail入站分析Webhook,但发现它们提供的示例似乎落后于完美解决方案的很长一段路。如何使用MVC模型绑定从Asp.net MVC中的SendGrid Inbound Parse Webhook获取数据?
https://sendgrid.com/docs/Code_Examples/Webhook_Examples/csharp.html#-Parse-Webhook
[HttpPost]
public async Task<HttpResponseMessage> Post()
{
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
await Request.Content.ReadAsMultipartAsync(provider);
var email = new Email
{
Dkim = provider.FormData.GetValues("dkim").FirstOrDefault(),
To = provider.FormData.GetValues("to").FirstOrDefault(),
Html = provider.FormData.GetValues("html").FirstOrDefault(),
From = provider.FormData.GetValues("from").FirstOrDefault(),
Text = provider.FormData.GetValues("text").FirstOrDefault(),
SenderIp = provider.FormData.GetValues("sender_ip").FirstOrDefault(),
Envelope = provider.FormData.GetValues("envelope").FirstOrDefault(),
Attachments = int.Parse(provider.FormData.GetValues("attachments").FirstOrDefault()),
Subject = provider.FormData.GetValues("subject").FirstOrDefault(),
Charsets = provider.FormData.GetValues("charsets").FirstOrDefault(),
Spf = provider.FormData.GetValues("spf").FirstOrDefault()
};
// The email is now stored in the email variable
return new HttpResponseMessage(HttpStatusCode.OK);
}
这不使用模型,这似乎我错了任何方式结合。他们的代码也不会从表单数据中提取附件。
所有的建议,例子和帮助非常感谢。
对不起,SendGrid的工作人员告诉我,如果任何人有任何c#代码使用他们的服务的例子,因为我正在与之交谈的人只知道PHP。我会尝试将问题改为更合适的。 – 2015-02-12 03:34:47
如果您将签名更改为公共异步任务发布([FromBody]电子邮件数据)并且读取数据内容,会发生什么? –
2015-02-12 04:53:04
只需添加'[FromBody]'不起作用,它现在不再发现要调用的操作方法。我认为这是因为它在MVC控制器中,而不是WebApi控制器。我将它转换成WebApi控制器,看看是否有帮助。 – 2015-02-12 10:53:57