Zend framework 为什么有些锚定标签不正确?

Zend framework 为什么有些锚定标签不正确?,zend-framework,email-client,zend-mail,Zend Framework,Email Client,Zend Mail,我使用Zend_Mail通过SMTP发送文本电子邮件。在测试环境中,我注意到通过浏览器客户端收集电子邮件时,URL已转换为超链接,但链接和普通文本之间的边界绘制在错误的位置 例如,在下面的电子邮件片段中,您可以看到我已向用户发送了注册电子邮件。它包括“id”和“code”的参数。您将看到,在这种情况下,浏览器客户端已确定“id”是超链接的一部分,但“代码”不是 please follow this link <a href="http://mydomain.com/user/validat

我使用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...
使用setBodyText,您可以设置电子邮件的纯文本部分:当您在纯文本电子邮件中写入链接时,您只会写入一些没有特定含义的字符;接收邮件的客户端将了解该邮件是否为链接以及如何呈现它。然而,这个过程是我们无法控制的,它是客户端的,取决于用户拥有的客户端

在我看来,最好的解决方案是同时设置Zend_邮件对象调用

$yourMailObject->setBodyHtml($htmlString);
这样做可以明确地告诉邮件客户端如何呈现链接

显然,您需要做更多的工作,但是由于您希望客户机将HTML属性呈现为标记,因此更好的方法是向他传递正确的HTML

总而言之,工作流程如下所示:

确定链接并将其放入$link变量中 以纯文本形式准备邮件正文:$bodyText=Something。。。点击这里:$link。。。; 准备HTML格式的邮件正文:$bodyHtml=单击下面的链接,或者复制并粘贴到浏览器中的url:

; 调用邮件对象的两个方法:$yourMailObject->setBodyText$bodyText->setBodyHtml$bodyHtml;
然后你可以像往常一样发送邮件。您可以选择以更复杂的方式自定义html,添加内联css等等。您也可以使用单空格字体将其格式化为纯文本邮件,但由于您传递了正确的HTML,您可以确保客户端将单击正确的链接。

您能显示生成该锚定的代码吗?
$yourMailObject->setBodyHtml($htmlString);