PHP邮件命令获胜';如果“;http://”;在体内


PHP mail command won't work if "http://" is in the body

我见过的最奇怪的东西。如果在邮件正文中使用字符串"http://",则mail命令不起作用。如果使用这些字符的任何其他组合,它确实会发送。例如,我可以键入"http://"或"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='http://';

$mail_body='http://';

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

时不是这样

如果要在正文中添加"http",请尝试使用"html"格式发送电子邮件。它会起作用,因为我们已经发送了可能包含链接"http"的电子邮件

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

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

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