格式化电子邮件中的文本

时间:2013-11-14 12:35:39

标签: php email

抱歉,仍然是新手,但越来越好。我正在建立一个网站,因为我不是那么好,我正在提供一个页面,俱乐部成员可以报告问题,并给我足够的信息来调查。我写了PHP代码给我发电子邮件。如果我回显$ message,它在屏幕上打印得很好,但在电子邮件中,它只是一个带有HTML标签的长句子。我搜索了一个解决方案并尝试了“”内容类型:text / plain; charset = UTF-8“”,但没有做任何事情。我知道当我得到答案时我会感到尴尬,但我被困住了。提前谢谢。

<?php  
//  Convert form data to srting data

    $first_name=$_POST['first_name'];
    $last_name=$_POST['last_name'];
    $e_mail=$_POST['e_mail'];
    $browser=$_POST['browser'];
    $browser_version=$_POST['browser_version'];
    $os=$_POST['os'];
    $os_ver=$_POST['os_ver'];
    $device=$_POST['device'];
    $make=$_POST['make'];
    $issue=$_POST['issue'];

//  Use string data to create and send e-mail

    $to = '*******@*****.com';  //  will need to be converted to webmaster@stjoesclub.com
    $subject = 'Problem with St. Joseph Web Site';
    $message = $first_name . " " . $last_name . " is reporting a problem with the web site. <br><br>" .
               "E-mail address:  " . $e_mail . "<br><br>" .
               "Browser:  " . $browser . "<br>" .
               "Browser Version:  " . $browser_version . "<br><br>" .
               "Operating System:  " . $os . "<br>" .
               "Operating System Version:  " . $os_ver . "<br><br>" .
               "Device:       " . $device . "<br>" .
               "Device Make:   " . $make . "<br><br>" .
               $issue;


//  Send e-mail to webmaster

    mail($to, $subject, $message, 'From: ' . $e_mail, "Content-type: text/plain; charset=UTF-8");

?>

3 个答案:

答案 0 :(得分:0)

Content-Type应设置为text/html,如@Ben Fortune所述

答案 1 :(得分:0)

使用Content-Type作为text/html,如下所示

$eol="\r\n";

# Common Headers
$headers = "Message-ID: <".time()."-".$e_mail.">".$eol;
$headers .= "X-Mailer: PHP v".phpversion().$eol;                      
// These two to help avoid spam-filters

# Boundry for marking the split & Multitype Headers
$headers .= 'MIME-Version: 1.0'.$eol;
$headers .= "Content-Type: text/html; charset=iso-8859-1".$eol.$eol;

mail($to, $subject, $message, 'From: ' . $e_mail, $headers);

答案 2 :(得分:0)

尤里卡!感谢Harish Singh的帮助,我能够解决自己的问题。看看他的代码,我发现一个问题是字符串$ mailHtml未定义,这是电子邮件空白的原因。

但是从他的代码中学习,我发现$ eol代表End Of Line。当通过电子邮件进入时,通过使用它来代替电子邮件格式。

不幸的是,如果我在提交后回显屏幕上的$ message,它就不起作用,但幸运的是我保存了旧代码以便我可以正确打印。我知道这不是有效的代码,但对于一个新手黑客来说它是有效的。

再次感谢您的帮助。