【发布时间】:2015-12-17 05:22:36
【问题描述】:
我有点奇怪。使用 PHP Pear Mail 我正在发送一封 HTML 电子邮件,其中包含指向子域 http://mysub.mydomain.co.uk 的链接
$body='<html><body><strong>Hello '.$forename.'</strong><br><br>Thank you for registering your details. To complete the process, please follow the link below in this email.<br><br>
<a href="http://mysub.mydomain.co.uk?V='.$myvalue.'">Complete Verification Here</a></body></html>';
$headers = array ('From' => $from,'To' => $to,'Subject' => $subject);
$mime = new Mail_mime();
$mime->setHTMLBody($body);
$headers = $mime->headers($headers);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password)
);
$mail = $smtp->send($to, $headers, $body);
电子邮件可以正常发送,如果我从发送电子邮件的页面将电子邮件正文打印到屏幕上,则链接可以正常工作。但是,当它在 MS Outlook 中的电子邮件中到达时,它会将前 2 个字符从链接中的 myvalue 中取出。如果myvalue=12345678 它显示myvalue=345678 并错误地显示链接,例如它将上面显示为ttp://mysub.mydomain.co.uk/?V=345678。请注意,它删除了 http 地址中的 H 并且还在 ?v= 之前添加了一个正斜杠,并且前 2 位数字 12 也丢失了。然后它无法打开链接,因为它错误地将其显示为 http 链接。该电子邮件也不会以 HTML 电子邮件形式到达 Gmail,也没有链接。
知道我在这里缺少什么吗?
【问题讨论】:
-
这可能和stackoverflow.com/questions/31227537/…是同一个问题
标签: php html email html-email pear