3

ユーザーが名前、電話番号、電子メールなどを入力できるサイトにフォームがあります。この情報を電子メールとして受信すると、完全にフォーマットされていないため、少し読みにくくなります。下の画像を参照してください。

受信メールのスクリーンショット

CSS を使用してこれをスタイルできる方法はありますか。From とメールの見出しを太字にし{font-weight:bold;}ますか?

フォームに使用しているphpは次のとおりです。

<?php
$name        = $_POST['name'];
$email       = $_POST['email'];
$phone       = $_POST['phone'];
$message     = $_POST['message'];
$formcontent ="From: $name \n Email: $email \n Phone: $phone \n Message: $message";
$recipient   = "studio@ll-i.co.uk";
$subject     = "Contact Form";
$mailheader  = "From: $email \r\n";

mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");

echo "<p>Thanks for getting in touch, we'll get back to you shortly..</p>";
?>
4

2 に答える 2

6

次のように HTML で簡単にフォーマットできます。コンテンツで使用される内部 CSS を記述できることに注意してください。

<?php
$to = "somebody@example.com, somebodyelse@example.com";
$subject = "HTML email";

$message = "
<html>
    <head>
    <title>HTML email</title>
        <style type="text/css">
        hr {color:sienna;}
        p {margin-left:20px;}
        h3
        {
        color:red;
        text-align:left;
        font-size:8pt;
        }
        </style>
    </head>
<body>
    <h3>The fancy CSS heading!</h3>
    <p>".$email."</p>
    <hr>
    <table>
        <tr>
        <th>Firstname</th>
        <th>Lastname</th>
        </tr>
";
// You can even do stuff like this:
for($i=0;$i<count($someArrayFromYourForm);$i++)
{
    $email.="
        <tr>
        <td>".$someArrayFromYourForm['formField']."</td>
        <td>".$someArrayFromYourForm['formField2']."</td>
        </tr>
";
}
$email.="
    </table>
</body>
</html>
";

// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";

// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

mail($to,$subject,$message,$headers);
?> 
于 2012-08-01T08:39:44.780 に答える
5

HTMLファイルに埋め込まれたインラインCSS / CSSでスタイルを設定する必要があります。

$formcontent 変数には HTML を含めることができます。

"<html>
    <head>
        <title>Message</title>
    </head>
    <body>
        <p><strong>From:</strong> $name</p>
        <p><strong>Email:</strong> $email</p>
        <p><strong>Phone:</strong> $phone</p>
        <p><strong>Message:</strong> $message</p>
    </body>
</html>"

CSS を次のように head に入れます。

<head>
   <style type="text/css">
       body { background-color: #ff0000; }
   </style>
</head>

明らかに、これらを使用する必要があります: ' の代わりにこれらの " を使用し、HTML のいずれかにスピーチ引用符を使用する必要がある場合に備えて、ピリオドまたはコンマを使用して変数を連結します。

このような:

'<html>
    <head>
        <title>Message</title>
        <style type="text/css">
           body { background-color: #ff0000; }
        </style>
    </head>
    <body>
        <p><strong>From:</strong> ',$name,'</p>
        <p><strong>Email:</strong> ',$email,'</p>
        <p><strong>Phone:</strong> ',$phone,'</p>
        <p><strong>Message:</strong> ',$message,'</p>
    </body>
</html>'

編集:

また、ヘッダーを次のように変更する必要があります。

$mailheader = "MIME-Version: 1.0" . "\r\n";
$mailheader .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$mailheader .= "From: $email \r\n";
于 2012-08-01T08:40:17.763 に答える