我有个奇怪的。使用Pear,我将发送一个带有链接到子域http://mysub.mydomain.co.uk的HTML
$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); 电子邮件被发送的很好,如果我从发送电子邮件的页面将电子邮件的正文打印到屏幕上,那么链接就能正常工作。然而,当它在myvalue中的电子邮件中到达时,它会将链接中的前两个字符从我的值中删除。例如,如果myvalue=12345678表示myvalue=345678并不正确地显示链接,则将上面的链接显示为ttp://mysub.mydomain.co.uk/?V=345678。注意,它移除http地址中的H,并在?v=和前2位12之前添加一个正斜杠。当它不正确地将链接显示为http链接时,它就无法打开链接。电子邮件也不会作为HTML电子邮件到达Gmail,也没有链接。
知道我在这里错过了什么吗?
发布于 2015-09-21 07:13:27
最终发现了这个问题
在正文中,我必须替换正文中的每一处
"使用ASCII代码
'现在工作很好
发布于 2015-09-30 12:58:43
您不必在mail_mime包之外操纵正文文本,您需要用它来对主体进行编码:
$mime = new Mail_mime();
$mime->setHTMLBody($body);
$mimebody = $mime->get();
$headers = $mime->headers($headers);
$smtp = Mail::factory(
'smtp',
[
'host' => $host,
'auth' => true,
'username' => $username,
'password' => $password,
'port' => $port
]
);
// send email
$mail = $smtp->send($to, $headers, $mimebody);https://stackoverflow.com/questions/32679480
复制相似问题