含/的邮箱地址在mailto: URL中的编码规范及RFC合规性问询
邮箱地址
~a/b@example.org对应的mailto: URL规范解析 问题背景
对于邮箱地址~a/b@example.org,对应的mailto: URL有两种可选写法:
- 选项1:
mailto:~a/b@example.org - 选项2:
mailto:~a%2Fb@example.org
虽然多数邮件客户端可以正常处理选项1,但从RFC标准层面,是否强制要求使用选项2?结合EID 7919及RFC 3986的相关条款,核心是明确/字符是否必须进行百分编码。
标准依据分析
RFC 3986的基础规则
RFC 3986将URL字符分为保留字符、非保留字符和其他字符。其中/属于保留字符,设计用途是分隔URL的路径组件。该标准明确要求:如果保留字符被用于其原始保留用途之外的场景(即不作为分隔符使用),必须进行百分编码。EID 7919的专项澄清
EID 7919专门针对mailto: URL的编码规则做了补充说明,明确指出:邮箱地址中的/是本地部分的合法字符,并不承担mailto: URL的路径分隔功能,因此属于“非保留目的”使用的保留字符,必须进行百分编码,即用%2F替代原始的/。
结论
尽管选项1能被多数客户端兼容,但严格遵循RFC标准(结合EID 7919与RFC 3986)的要求,必须使用选项2。
内容的提问来源于stack exchange,提问作者Runxi Yu
相关产品推荐
相关产品推荐

