SendGrid 传入邮件 webhook - 如何在 C# 中将 JSON 格式的电子邮件数据保存到我的应用程序文件夹中
SendGrid incoming mail webhook - how to save the JSON format email data into my application folder in C#
这是关于 Sendgrid 传入邮件网络钩子的,我已经参考了这个 URL SendGrid incoming mail webhook - how do I secure my endpoint,并且知道如何处理这个,但是,由于我是 MVC / WebAPI 的新手,可以谁给我控制器方法代码片段来捕获 JSON 格式的 HTTP post 并保存到我的应用程序文件夹。
这是我通过谷歌搜索并稍作修改后找到的解决方案:
[HttpPost, HttpGet]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public async Task Post()
{
if (Request.Content.IsMimeMultipartContent("form-data"))
try
{
//To get complete post in a string use the below line, not used here
string strCompletePost = await Request.Content.ReadAsStringAsync();
HttpContext context = HttpContext.Current;
string strFrom = context.Request.Form.GetValues("from")[0];
string strEmailText = context.Request.Form.GetValues("email")[0];
string strSubject = context.Request.Form.GetValues("subject")[0];
//Not useful I guess, because it always return sendgrid IP
string strSenderIP = context.Request.Form.GetValues("sender_ip")[0];
}
catch (Exception ex)
{
}
}
我试过了,将值检索为
String to = context.Request.Params["to"];
但是,返回的值不一致,即大多数时候返回 null,偶尔 returns 存储在其中的实际值。
如果谁有更好的解决办法,请告诉我。
谢谢
如果由于某种原因 ["to"] 对您不起作用,请尝试获取 ["envelope"] 值,
context.Request.Form.GetValues("envelope")[0]
看起来像
{"to":["emailto@example.com"],"from":"emailfrom@example.com"}
这是关于 Sendgrid 传入邮件网络钩子的,我已经参考了这个 URL SendGrid incoming mail webhook - how do I secure my endpoint,并且知道如何处理这个,但是,由于我是 MVC / WebAPI 的新手,可以谁给我控制器方法代码片段来捕获 JSON 格式的 HTTP post 并保存到我的应用程序文件夹。
这是我通过谷歌搜索并稍作修改后找到的解决方案:
[HttpPost, HttpGet]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public async Task Post()
{
if (Request.Content.IsMimeMultipartContent("form-data"))
try
{
//To get complete post in a string use the below line, not used here
string strCompletePost = await Request.Content.ReadAsStringAsync();
HttpContext context = HttpContext.Current;
string strFrom = context.Request.Form.GetValues("from")[0];
string strEmailText = context.Request.Form.GetValues("email")[0];
string strSubject = context.Request.Form.GetValues("subject")[0];
//Not useful I guess, because it always return sendgrid IP
string strSenderIP = context.Request.Form.GetValues("sender_ip")[0];
}
catch (Exception ex)
{
}
}
我试过了,将值检索为
String to = context.Request.Params["to"];
但是,返回的值不一致,即大多数时候返回 null,偶尔 returns 存储在其中的实际值。
如果谁有更好的解决办法,请告诉我。
谢谢
如果由于某种原因 ["to"] 对您不起作用,请尝试获取 ["envelope"] 值,
context.Request.Form.GetValues("envelope")[0]
看起来像
{"to":["emailto@example.com"],"from":"emailfrom@example.com"}