【问题标题】:PHP Web form; styling the look of the outgoing emailPHP 网页表单;设置外发电子邮件的外观
【发布时间】:2013-02-08 08:49:29
【问题描述】:

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

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;
}

【问题讨论】:

  • 这让我觉得更像是一个 CSS/HTML 问题,而不是与 PHP 有太大关系。
  • html 电子邮件!必须...抵抗...敦促...杀死...

标签: php css webforms


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    如果你只需要发送电子邮件,最好制作 html.inc 并导入这个 与

    require(html.inc) 
    

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

    用这个html.inc

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-29
      • 2018-01-12
      • 2018-06-07
      • 1970-01-01
      • 2017-08-07
      相关资源
      最近更新 更多