php
  • email
  • 2012-10-18 38 views 1 likes 
    1

    這裏發送郵件時獲得換行符是我的代碼:無法通過PHP mail()函數

     $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_EOL等... 它工作的唯一方法是當我刪除我的「內容類型」標題。 任何人都有一個想法,爲什麼它是這樣的?!

    回答

    3

    由於您要發送HTML電子郵件,您需要使用<br>來設置換行符。那麼,或包裹在<pre></pre>標籤的一切,以兌現\ n。如果輸出中不需要HTML,只需將內容設置爲'text/plain',並且換行符會顯示出來。

    由於它不是多部分嘗試將MIME-Version: 1.0添加到標題。這可能有助於內容類型。

    $headers .= "MIME-Version: 1.0\r\nContent-Type: text/plain; charset=UTF-8"; 
    
    +0

    iv'e將其更改爲 'text/plain的',但是,它仍然是行不通的。 – dada

    +0

    text/plain和\ r \ n作爲換行符應該有效。如果您查看原始消息源,您會看到換行符和內容類型標題。 – Doon

    +0

    這很奇怪。它不會像你說的那樣工作,我甚至再次將它改爲text/html,並且添加了
    標籤,但仍然是無用的工作。在原始來源中有換行符,但沒有在原始消息中。 – dada

    1

    用作例子解釋

    $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=''); 
    
    相關問題