通过php mail()函数发送邮件时无法获取换行符

通过php mail()函数发送邮件时无法获取换行符,php,email,Php,Email,这是我的密码: $body = "Name:{$name}".PHP_EOL; $body .= "Phone:".$phone.PHP_EOL; $body .= "Email:".$email."\n\n"; $body .= "Comments:".$comments."\n\n"; $headers = 'From: MAILER <'.$emailTo.'>' . "\r\n" . 'Reply-To: '. $email."

这是我的密码:

        $body = "Name:{$name}".PHP_EOL;
    $body .= "Phone:".$phone.PHP_EOL;
    $body .= "Email:".$email."\n\n";
    $body .= "Comments:".$comments."\n\n";
    $headers = 'From: MAILER <'.$emailTo.'>' . "\r\n" . 'Reply-To: '. $email."\r\n";
    $headers .= "Content-Type: text/html; charset=UTF-8"; 
    mail($emailTo, "New message", $body, $headers);
正如您所看到的,我已经尝试使用\r\n\、\n\n、PHP\u EOL等。。。 唯一有效的方法是删除我的内容类型标题。
有人知道为什么会这样吗

由于您正在发送HTML电子邮件,因此需要使用设置换行符。因为你发送的是HTML电子邮件,所以你需要使用它来设置换行符。好吧,那就把所有的东西都用包装起来,就像例子中解释的那样


用作示例中的解释


text/plain和\r\n作为换行符应该可以工作。如果你查看原始消息源,你会看到换行符和内容类型标题。这很奇怪。它没有像你说的那样工作,我甚至再次将它更改为text/html,并添加了标记,但仍然不起作用。原始消息中有换行符,但原始消息中没有。只需删除内容类型即可。。我的猜测是,由于你没有发送一封由多个部分组成的电子邮件,邮件客户端会被它卡住。除非您发送MIME/多部分邮件,否则确实不需要该内容类型。好的,但我是否仍可以保留Charset=utf-8作为标题以使其保持不变?我将编辑我的答案,但尝试添加可能有用的MIME版本。text/plain和\r\n因为换行符应该可以工作。如果你查看原始消息源,你会看到换行符和内容类型标题。这很奇怪。它没有像你说的那样工作,我甚至再次将它更改为text/html,并添加了标记,但仍然不起作用。原始消息中有换行符,但原始消息中没有。只需删除内容类型即可。。我的猜测是,由于你没有发送一封由多个部分组成的电子邮件,邮件客户端会被它卡住。除非您正在发送MIME/多部分消息,否则实际上不需要内容类型。好的,但是我仍然可以保留Charset=utf-8作为标题,让它自己作为标题吗?我将编辑我的答案,但尝试添加MIME版本,这可能会有所帮助。
$headers .= "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8";
$toemail=$emailid;
                $subject="You have registered successfully , please activate your account.";
                $msgbody.='<table width="100%" align="center" cellpadding="5" cellspacing="0" border="0">';
                $msgbody.='<tr><td>Admin Approved your profile and the details are : </td></tr>';
                $msgbody.='<tr><td>Username : '.$username.'</td></tr>';
                $msgbody.='<tr><td>Email : '.$emailid.'</td></tr>';
                $msgbody.='<tr><td>Password : '.$_SESSION['fan_user_password'].'</td></tr>';
                $msgbody.='<tr><td><a href="'.BASE_URL.'activate/fan/'.$lastid.'/'.$activation_code.'">';
                $msgbody.='Click here </a>to activate your account.</td></tr>';
                $msgbody.='</table>';
                mail($toemail,$subject,$msgbody,$from='');