我即将发送一个包含不安全用户输入的代码中的html电子邮件.我注意到如果我html逃脱主题,GMail将显示转义的内容(所以如果我的主题是“This& That”,我将其清理为“This& amp; That”,Gmail显示后者). Thunderbird也是如此.假设所有电子邮件客户端都不需要主题html转义是否安全?
解决方法
无需在主题行中编码
HTML实体.在
HTML主体中进行编码的原因是,如果您使用的是XHTML,因为它源自
XML,对待&作为保留字符.
但是,电子邮件的主题行不是HTML,XML或XHTML.这只是纯文本.因此,您不需要将&符编码为& amp ;.如果你对它进行编码,因为它没有被解析为HTML,它将显示为已编码.
如果要包含非ASCII字符(例如£),则需要将整个“信封”(包括电子邮件正文)编码为UTF-8.
| Subject Line | Body ==================================== & | & | & & | & | & UTF-8 £ | £ | £ ASCII £ | n/a | n/a £ | £ | £
注意:Microsoft Office有一个奇怪的UTF-8实现,因此并非所有UTF-8字符都能正常工作.