0

ここで私が間違っていることを誰かが見ることができるかどうか疑問に思っていました。私のhtmlは次のようになります

<form action="process.php" method="post">
    <fieldset>
        <div id="inputLeft">
            <p>
                <label for="name">Full Name</label>
                <input class="validate[required,custom[onlyLetter],length[0,100]]" name="name" type="text" id="name" value="">
            </p>
            <p>
                <label for="email">Email Address</label>
                <input class="validate[required,custom[email],length[0,100]]" name="email" type="text" id="email" value="">
            </p>
            <p>
                <label for="subject">Subject</label>
                <input class="validate[required,length[5,600]" name="subject" type="text" id="subject" value="">
            </p>
        </div>
        <div id="inputRight">
            <p>
                <label for="country">Country</label>
                <input name="country" type="text" id="country" value="">
            </p>
            <p>
                <label for="phone">Phone Number</label>
                <input name="Phone" type="text" id="phone" value="">
            </p>
            <p>
                <label for="url">Website</label>
                <input name="url" type="text" id="url" value="">
            </p>
        </div>
        <p>
            <label for="message">Message</label>
        <textarea name="message" cols="120" rows="8" id="message"></textarea>
        </p>
    </fieldset>

そして、このようなphp

<?php
   # recipient
   $recipient = 'sean@seankonig.co.za'

   # subject
   $subject = $_Post['subject'];

   # headers
   $headers = "Website enquiry <>\r\n";

   # message
   $message =  "Name : {$_POST['name']}\n";
   $message .= "Email : {$_POST['email']}\n";
   $message .= "Subject : {$_POST['subject']}\n";
   $message .= "Message : {$_POST['message']}\n";

   if( mail($recipient, $subject, $message, $headers) ) echo "Mail Sent";
   else echo "Mail Could Not Be Send";
?>

テストすると、メールは送信されたと表示されますが、何も配信されません。よろしければご覧いただき、お知らせいただけますでしょうか。

4

2 に答える 2

0

コードをざっと見てみると、メールが機能しない原因となるエラーがいくつか見つかりました

$recipient = 'sean@seankonig.co.za'; //you are missing a semicolon here

$subject = $_Post['subject'];//$_POST is not the same as $_Post
于 2013-06-04T10:13:21.237 に答える
0

を拡張することもできますheaders。これは必ずしもあなたのコンテンツに影響を与えるわけではありませんが、あなたのメールが誰かのスパムボックスに入るかどうかに影響を与える可能性があります:

$headers = 'MIME-Version: 1.0' . PHP_EOL;
$headers .= 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL;
$headers .= "FROM: Website.com <noreply@website.com>" . PHP_EOL;
$headers .= "Return-Path: noreply@website.com" . PHP_EOL;
$headers .= "Reply-To: noreply@website.com" . PHP_EOL;

PHP_EOLと書かれていることもあります\r\nが、私のスクリプトでPHP_EOLはよりうまく機能することに注意してください(ヘッダーは送信済みメールのコンテンツとして表示されました)。

于 2013-06-04T10:20:19.977 に答える