2013-02-22 87 views
0

目前的外观将几乎不具有组织,例如电子邮件:PHP Web表单;当表单提交它的造型外发电子邮件

Name: 
JohnDoe 
email: 
[email protected] 
message: 
blah, blah, blah 

我想在标签左对齐,和值右对齐并在电子邮件中添加背景图片。我知道我将需要使用表格;但我在PHP中绝不够精通。看看代码,我相信这条带与外观有关。我从html-form-guide.com获得了表单。任何帮助将不胜感激,谢谢。

function FormSubmissionToMail() 
{ 
    $ret_str=''; 
    foreach($_POST as $key=>$value) 
    { 
     if(!$this->IsInternalVariable($key)) 
     { 
      $value = htmlentities($value,ENT_QUOTES,"UTF-8"); 
      $value = nl2br($value); 
      $key = ucfirst($key); 
      $ret_str .= "<div class='label'>$key :</div><div class='value'>$value </div>\n"; 
     } 
    } 
    foreach($this->fileupload_fields as $upload_field) 
    { 
     $field_name = $upload_field["name"]; 
     if(!$this->IsFileUploaded($field_name)) 
     { 
      continue; 
     }   

     $filename = basename($_FILES[$field_name]['name']); 

     $ret_str .= "<div class='label'>File upload '$field_name' :</div><div class='value'>$filename </div>\n"; 
    } 
    return $ret_str; 
} 

function GetMailStyle() 
{ 
    $retstr = "\n<style>". 
    "body,.label, { font-family:Arial,Verdana; } ". 
    ".label {font-weight:bold; margin-top:5px; font-size:1em; color:#000;} ". 
    ".value {margin-bottom:15px;font-size:0.8em;padding-left:5px; font-family:Helvetica;} ". 
    "</style>\n"; 

    return $retstr; 
} 
function GetHTMLHeaderPart() 
{ 
    $retstr = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">'."\n". 
       '<html><head><title></title>'. 
       '<meta http-equiv=Content-Type content="text/html; charset=utf-8">'; 
    $retstr .= $this->GetMailStyle(); 
    $retstr .= '</head><body>'; 
    return $retstr; 
} 
function GetHTMLFooterPart() 
{ 
    $retstr ='</body></html>'; 
    return $retstr ; 
} 
function ComposeFormtoEmail() 
{ 
    $header = $this->GetHTMLHeaderPart(); 
    $formsubmission = $this->FormSubmissionToMail(); 
    $footer = $this->GetHTMLFooterPart(); 
    $message = $header."Submission from 'contact us' form:<p>$formsubmission</p><hr/>".$footer; 

    return $message; 
} 
+0

这令我更象是一个CSS/HTML的问题,而不是多用PHP做。 – 2013-02-22 16:54:59

+0

html电子邮件!必须......抵抗......冲动......杀死...... – 2013-02-22 17:07:09

回答

2

不同的电子邮件客户端的CSS支持真的不同。您的代码正在将<style>标记中的CSS加载到head标记中。这仅在某些电子邮件客户端中受支持,所以有些不会加载任何CSS。

我发现包含CSS的支持最广泛的方法是在每个HTML元素上使用style属性(是的,这是一个很痛苦的事情)。另外,并不是所有的css规则都被支持。一个方便的指南,电子邮件客户端支持什么可以找到here.

另外,请确保您使用正确的电子邮件标题发送HTML邮件与PHP的邮件功能。见example #4

0

,如果你只需要发送电子邮件,它更好地使html.inc并导入这个 与

require(html.inc) 

把变量在文件中并发送电子邮件phpmailer室内用后。

使用这html.inc

相关问题