Gmail会自动将邮件中的urlencodes链接

时间:2015-01-19 12:40:52

标签: angularjs email gmail

我正在尝试向包含以下链接的Gmail帐户发送电子邮件:

  

http://www.example.com/#/something#param=1

这是一个AngularJS应用程序的链接,需要第二个'#'作为分隔符 问题是gmail将秒'#'更改为'%23',这会导致应用程序不将char识别为分隔符。
我有什么可以做的吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我使用gmail进行了快速测试,试图弄清楚会发生什么。

这是原始消息

MIME-Version: 1.0
Received: by 10.96.50.232 with HTTP; Mon, 19 Jan 2015 05:44:30 -0800 (PST)
Date: Mon, 19 Jan 2015 14:44:30 +0100
Delivered-To: *******@gmail.com
Message-ID: <CPZt8dX3Q17wXmU7UT2iXp7q4tSn1UsDmyiUbXFVK7xE2Q0C10A@mail.gmail.com>
Subject: test
From: <name> <*******@gmail.com>
To: <name> <*******@gmail.com>
Content-Type: multipart/alternative; boundary=20cf303b41179134a6050d0185f4

--20cf303b41179134a6050d0185f4
Content-Type: text/plain; charset=UTF-8

http://www.example.com/#/something#param=1

--20cf303b41179134a6050d0185f4
Content-Type: text/html; charset=UTF-8

<div dir="ltr"><a href="http://www.example.com/#/something#param=1">http://www.example.com/#/something#param=1</a><br></div>

--20cf303b41179134a6050d0185f4--

原始邮件显示正确的值,但我也注意到我的实际gmail客户端如何显示第二个#作为html编码的%23。

令人惊讶的是,与我在评论中建议的相反,使用纯文本实际上会产生预期的结果。

MIME-Version: 1.0
Received: by 10.96.50.232 with HTTP; Mon, 19 Jan 2015 06:06:39 -0800 (PST)
Date: Mon, 19 Jan 2015 15:06:39 +0100
Delivered-To: *****@gmail.com
Message-ID: <KMBt8bX2CrmEL66iRFAJ+_s_1W2eodD=9X=bMdsBK_13qzh6DaA@mail.gmail.com>
Subject: test4
From: <name> <*****@gmail.com>
To: <name> <*****@gmail.com>
Content-Type: text/plain; charset=UTF-8

http://www.example.com/#/something#param=1

我不知道您的AngularJS应用程序如何从电子邮件中读取链接,因此纯文本可能不是一个选项,但上面的电子邮件中的链接映射到我的Gmail客户端中的http://www.example.com/#/something#param=1