0

在提交表单的那一刻,它会发送一封几乎没有组织的电子邮件,例如:

Name:
JohnDoe
email:
johndoe@gmail.com
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;
}
4

2 回答 2

2

CSS 支持在不同的电子邮件客户端中确实有所不同。您的代码正在<style>标签中加载 CSS head。这仅在某些电子邮件客户端中受支持,因此有些根本不会加载任何 CSS。

我发现包含 CSS 的最广泛支持的方法是style在每个单独的 HTML 元素上使用属性(是的,这样做很痛苦)。此外,并非所有 css 规则都受支持。电子邮件客户端支持的便捷指南可在此处找到。

此外,请确保您使用正确的电子邮件标题来发送带有 PHP 邮件功能的 HTML 电子邮件。请参见示例 #4

于 2013-02-22T17:03:40.470 回答
0

如果您只需要发送电子邮件,最好制作 html.inc 并将其导入

require(html.inc) 

将变量放入文件中,然后使用phpmailer发送电子邮件。

用它来html.inc

于 2013-02-22T17:08:11.153 回答