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 を作って import で

require(html.inc) 

変数をファイルに入れてから、phpmailer でメールを送信します

これをhtml.incに使用します

于 2013-02-22T17:08:11.153 に答える