2012-03-04 9 views
1

奇怪的事情我见过。如果邮件正文中使用了字符串“http://”,则邮件命令不起作用。如果使用这些字符的任何其他组合,它会发送。例如,我可以键入“TTP://”或“HTTP:/”,并且将发送罚款。只要我有确切的字符串的“http://”,在身体的任何部位,邮件不发送。PHP邮件命令将无法正常工作,如果“HTTP://”是人体

不起作用:

$mail_body = 'http://'; 
$subject = "Test subject"; 
$recipient = "[email protected]"; 

$header = "MIME-Version: 1.0\n" ; 
$header .= "Content-type: text/html; charset: utf8\r\n"; 
$header = $header . 'From: [email protected]'; 

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

如果你改变$ mail_body,例如以上不工作:

$ mail_body = 'TTP://';

$ mail_body ='http:/';

可以想象的任何其他字符的任何其他组合,只是当它说不是http://

+0

请张贴你的代码用来发送电子邮件。 – 2012-03-04 07:22:14

+0

“不发送”? – 2012-03-04 07:24:11

+0

没有足够的信息:( 1.您是否使用共享主机?1.1。向托管服务提供商,如果他们封锁链接 2.您是否确信电子邮件发送成功?2.1电子邮件。这是什么邮件()函数返回? – 2012-03-04 07:25:22

回答

0

如果你在你的身体将“HTTP”,请尝试使用“HTML”发送电子邮件格式。它将工作,因为我们发送的信息可包含电子邮件链接“HTTP”

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

使用上述字符集和你的代码将工作

0

更换http://http%3A//