Sub*_*ive 5 c# asp.net webhooks sendgrid
完全陷入与 SendGrid 提供的入站解析 Webhook 功能相关的问题:https ://sendgrid.com/docs/for-developers/parsing-email/setting-up-the-inbound-parse-webhook/
\n\n首先,检索发送到我的应用程序端点的邮件一切正常。使用Request.Form我能够检索数据并使用它。
问题是,我们在收到一些邮件时开始注意到问号符号而不是字母(使用 \xc3\x85 \xc3\x84 和 \xc3\x96 用瑞典语编写)。发送纯文本邮件和带有 HTML 正文的邮件时都会发生这种情况。
\n\n然而,这种情况只是偶尔发生。经过大量搜索后,我发现如果邮件是从邮箱或 Outlook(或类似的)发送的,并且应用程序的字符集设置为 iso-8859-1,那么 \xc3\x85 \xc3\ x84 \xc3\x96 被问号替换。
\n\n为了复制错误并能够对其进行调试,我设置了一个 HTML 页面,其中包含使用 iso-8859-1 编码的表单,发送与上面链接中看到的类似的有效负载(默认负载)。之后,我们进行了大量的测试,试图让它发挥作用。
\n\n截至目前,我正在尝试重新编码输入,但没有成功。我正在测试的代码:
\n\n Encoding wind1252 = Encoding.GetEncoding(1252);\n Encoding utf8 = Encoding.UTF8;\n byte[] wind1252Bytes = wind1252.GetBytes(Request.Form.["html"]);\n byte[] utf8Bytes = Encoding.Convert(wind1252, utf8,wind1252Bytes);\n string utf8String = Encoding.UTF8.GetString(utf8Bytes);\nRun Code Online (Sandbox Code Playgroud)\n\n这只会导致utf8String产生与“???”相同的结果。其中 \xc3\x85 \xc3\x84 \xc3\x96 应该是。我的猜测是,这可能是由于 Request.Form["html"] 返回一个 UTF-16 字符串,该字符串的内容已经以错误的编码 iso-8859-1 进行编码。
获取POST的方法如下
\n\npublic async Task<InboundParseModel> FetchMail(IFormCollection form)\n{\n InboundParseModel _em = new InboundParseModel\n {\n To = form["to"].SingleOrDefault(),\n From = form["from"].SingleOrDefault(),\n Subject = form["subject"].SingleOrDefault(),\n Html = form["html"].SingleOrDefault(),\n Text = System.Net.WebUtility.HtmlEncode(form["text"].SingleOrDefault()),\n Envelope = form["envelope"].SingleOrDefault()\n };\n}\nRun Code Online (Sandbox Code Playgroud)\n\n从 POST 完成的另一个方法调用FetchMail(Request.Form);
项目信息:ASP.NET Core 2.2、C#
\n\n因此,如前所述,我完全陷入困境,并且对如何解决这个问题没有任何想法。任何帮助将非常感激!
\n| 归档时间: |
|
| 查看次数: |
823 次 |
| 最近记录: |