从C#/ Xamarin到Gmail的Sendgrid-引用的可打印破断URL查询参数

问题描述

我正在开发一个应用程序,并通过Azure使用Sendgrid发送一些电子邮件我有一个Rest API后端,然后还有一个Web门户,它也与其余API进行通信。

发送电子邮件时,我添加了3个用于回复的按钮(确认,重新安排,拒绝)。这些都是添加的URL参数,理想情况下应如下所示:

https://mywebsite.com/Home/Action?itemId=901ba77b-a154-464b-9ee8-8ff85ebdb4c5&result=2

但是,当我发送邮件时,原始内容中的gmail可以发送邮件

https://mywebsite.com/Home/Action?itemI=
d=3D901ba77b-a154-464b-9ee8-8ff85ebdb4c5&result=3D2

这破坏了功能

这指向一个.NET Core 2.2 Web应用程序。在我的控制器中,我添加了:

    public async Task<ActionResult> Action(string itemId,string result)
    {
        var callResult = await Constants.Client.PutAsync(
                String.Format("{0}/items/setResponse?uuid={1}&result={2}",ConsumerConstants.TastingRestAPIRoot,tastingId,result),null
            );
    }

当我在本地进行测试时,我已经可以使用它了,但是当我将它在线上时,它突然停止了工作。该按钮将我带到该站点,但是查询参数已损坏,因此无法正常工作。

如果我查看原始的gmail内容并将链接复制/粘贴到我的浏览器中,并保留= 3D和其他内容,它将无法更新任何内容-但是如果我将其更改回最初从我的应用程序发送时的状态(即,我在这文章中的第一个代码块)然后可以正常工作并对其进行更新。

我该如何解决?有没有一种方法可以解决我所拥有的查询参数的gmail问题?还是一种修改控制器以与之配合使用的方法?据我所知,我不允许将sendgrid content-transfer-encoding更改为quoted-printable。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)