我正在使用 Zend_Mail 通过 SMTP 发送文本电子邮件。在测试环境中,我注意到当通过浏览器客户端收集我的电子邮件时,URL 已被转换为超链接,但链接和普通文本之间的边界被绘制在错误的位置。
例如,在下面的电子邮件片段中,您可以看到我已向用户发送了一封注册电子邮件。它包括“id”和“code”的参数。您将看到,在这种情况下,浏览器客户端已确定“id”是超链接的一部分,但“代码”不是。
please follow this link <a href="http://mydomain.com/user/validate/id/18">http://mydomain.com/user/validate/id/18</a>/code/1a0d917c1512c700f7237ae1f3727e47 If you did not...
有时,“边界”是在任意位置绘制的——例如,在代码字段的一半处!
通过 Outlook 等客户端收集电子邮件时,似乎没有出现此问题。
大概这是我的 PHP 环境和我的浏览器客户端之间的某种字符集不兼容。话虽如此,我使用的是标准的 PHP 安装,并且在我的浏览器客户端中接收来自其他站点的链接没有问题。(浏览器客户端作为网站管理员帐户的一部分提供。)
有任何想法吗?
更新:这是生成链接的代码。尝试了各种组合,包括 EOT、单引号、双引号......结果相同......
$id = $options['id'];
$code = $options['validation'];
$link = "http://mydomain.com/user/validate/id/" . $id . "/code/" . $code;
$body = 'Thanks for registering ... please follow this
link ' . $link . ' If you did not request ....please ignore it.';
$this->setBodyText($body);