我正在尝试使用phpmailer发送一封电子邮件验证消息,其中包含用户可以单击的链接。但是,当我包含URL时,会引起问题。
我已经做了一些故障排除,它出现在导致问题的URL上。
我目前的代码是:
$mail->Body = '
<p>We have recevied a registration request from this account. Please
use the following link to verify your email. If you did not attempt to register,
please ignore this email.</p>
<p><a href="' . $url . '">' . $url . '</a></p>';
$mail->AltBody = 'Welcome to the site, click on this link' . ;
$mail->send();
示例链接为:
https://www.....co.uk/verifyemail.php?selector=aa2a233b3bb03a75&validator=ec4545a89cb1a9f3814f0e4d3f142f60fa14ebd9cbf3911a301b03756ab59b66
上面的代码之后,我有以下内容:
header('Location: ../index.php?result=unverified');
exit();
如果我运行上述代码,则电子邮件将正确发送,但没有返回到加载页面,而是显示了一个包含服务器与托管服务器之间所有通信的页面。
如果我取出“ AltBody”位,它会正确发送并正确进入index.html。
如果我删除所有URL,它将正确发送电子邮件并正确访问index.html。
我是否需要以某种方式转义URL?还是我想念其他东西?
谢谢 克里斯