2017-01-17 6 views
-1

連絡フォームを使用してメールアドレスにメールを送信します。フォームのクライアントは名前、メールアドレス、メッセージを入力します。メールが自分のアドレスに送信されると、ユーザーのメッセージだけが表示されます。 クライアントの名前、電子メールアドレス、およびメッセージが電子メールに表示されるようにするにはどうすればよいですか。PHPを使用してメールを送信する

if (empty($_POST) === false) { 
    $errors = array(); 

    $name  = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    if (empty($name) === true || empty($email) === true || empty($message) === true) { 
     $errors [] = 'Name ,email and message are required !'; 
    } else { 
     if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
      $errors[] = 'That\'s not a valid email address'; 
     } 

     if (ctype_alpha ($name) === false) { 
      $errors[] = 'Name must only contain Letters'; 
     } 
    } 
    if (empty($errors) === true) { 
     mail('[email protected]', 'Contact form', $message, 'From: ' . $email); 
     header('Location: index.php?sent'); 
     exit(); 
    }  
} 

<!DOCTYPE html> 
<html> 
     <head> 
       <title>A contact form</title> 
     </head> 
     <body> 
      <?php 
      if (isset($_GET['sent']) === true) { 
       echo '<p>Thanks for Contacting us !</p>'; 
      } else { 
       if (empty($errors) === false) { 
        echo '<ul>'; 
        foreach ($errors as $error) { 
         echo '<li>', $error, '</li>' ; 
       } 
       echo'</ul>'; 
      } 
      ?> 
      <form action="" method="post">   
       <p> 
        <label for="name">Name:</label><br> 
         <input type="text" name="name" id="name" <?php if (isset($_POST['name']) === true) {echo 'value="', strip_tags($_POST['name']), '"'; } ?>> 
         </p> 
         <p> 
          <label for="email">Email:</label><br> 
          <input type="text" name="email" id="email" <?php if (isset($_POST['email']) === true) {echo 'value="', strip_tags($_POST['email']), '"'; } ?>> 
         </p> 
         <p> 
          <label for="message">Message</label><br> 
          <textarea name="message" id="message"><?php if (isset($_POST['message']) === true) {echo strip_tags($_POST['message']); } ?></textarea> 
         </p> 
         <p> 
          <input type="submit" value="Submit"> 
         </p> 
        </form> 
       <?php 
       } 
       ?> 
     </body> 
</html> 
+0

名前、住所、メッセージはどのように表示する必要がありますか? 「From:Peter Parker [email protected]」のように?あなたが達成したいことを具体的にしてください。 – elementzero23

+0

パラメータを正しく入力し、$メッセージ文字列に追加の値を追加します。送信に関する情報については、http://stackoverflow.com/questions/5335273/how-to-send-an-email-using-php – Blackbam

+0

を参照してください。「mail()」ドキュメントを読むことから始めましょう。http://php.net/manual /en/function.mail.php –

答えて

0

ただ、メッセージに名前、電子メールを追加します。私たちはこのメソッドをPHPメールで常に使用しています。下の変数$newMessageを参照してください。それは簡単な参照のためにそれの上に追加された名前と電子メールを含むメッセージを含んでいます。

追加するパラメータの数に応じて、配列または文字列として変数$headersを作成すると、実行していることを確認するのも簡単です。私がここでやったやり方で、メールの「From」部分に人名が表示されます。

<?php 

if (empty($_POST) === false) { 
$errors = array(); 

$name  = $_POST['name']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

if (empty($name) === true || empty($email) === true || empty($message) === true) { 
    $errors [] = 'Name ,email and message are required !'; 
} else { 
    if (filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
     $errors[] = 'That\'s not a valid email address'; 
    } 

    if (ctype_alpha ($name) === false) { 
     $errors[] = 'Name must only contain Letters'; 
    } 

} 
if (empty($errors) === true) { 

    $headers = 'From: ' . $name . ' <' . $email . '>'; 
    // Create the new message to send with the name and email. 
    $newMessage = 'Name: ' . $name . '<br/>'; 
    $newMessage .= 'Email: ' . $email . '<br/>'; 
    $newMessage .= $message; 

    mail('[email protected]', 'Contact form', $newMessage, $headers); 

    header('Location: index.php?sent'); 
    exit(); 
} 

} 
?> 
0
$name  = $_POST['name']; 

$email = $_POST['email']; 

$message = $_POST['message']; 

$message = $message. " Email: $email". " Name: $name"; 

あなたは長くなり、より多くの情報を含むようにメッセージパラメータを編集することができます。あなたはhtmlに設定することさえできます。

すなわちhttp://php.net/manual/en/function.mail.php 部4

0

PHP mail()マニュアルに従って:

to:メールの受信、または受信機。

この文字列のフォーマットは、»RFC 2822に準拠している必要があります。一部 例は:

[email protected] 
    [email protected], [email protected] 
    User <[email protected]> 
    User <[email protected]>, Another User <[email protected]> 

mail()説明:

bool mail (string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]]) 

例1:

<?php 
mail("john doe <[email protected]>", "my subject", "my message") 
?> 

例2:

<?php 
$to  = 'john doe <[email protected]>'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 
関連する問題