如果“http://”在正文中,则PHP邮件命令将不起作用

时间:2012-03-04 07:19:19

标签: php email

我见过的最奇怪的事情。如果在邮件正文中使用字符串“http://”,则mail命令不起作用。如果使用了这些字符的任何其他组合,它就会发送。例如,我可以输入“ttp://”或“http:/”,这将发送正常。只要我在身体的任何地方都有确切的字符串“http://”,邮件就不会发送。

不起作用:

$mail_body = 'http://';
$subject = "Test subject"; 
$recipient =  "myemail@myemail.com";

$header = "MIME-Version: 1.0\n" ;
$header .= "Content-type: text/html; charset: utf8\r\n";
$header = $header . 'From: test@test.com';

mail($recipient, $subject, $mail_body, $header) or die('mail could not be sent');

如果您更改$ mail_body,上述操作会起作用,例如:

$ mail_body ='ttp://';

$ mail_body ='http:/';

可以想象的任何其他字符的任何其他组合,只是在它显示http://

2 个答案:

答案 0 :(得分:0)

如果您在身体中添加“http”,请尝试使用“html”格式发送电子邮件。它会工作,因为我们发送的电子邮件可能包含链接“http”

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

使用上面的字符集,您的代码将起作用

答案 1 :(得分:0)

http://替换为http%3A//