我见过的最奇怪的事情。如果在邮件正文中使用字符串“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://
时答案 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//