Search code examples
phpformsemail-headers

PHP send email to multiple recipients (headers not sending)


I have an index.html and a contacto.php.

contacto.php is supposedly meant to send the user's info to multiple recipients but it's not sending.

This is my index.html (ignore the javascript)

<form action="contacto.php" method="POST">

        <fieldset style="margin: 0px 0 0 0"; >
<br/><br/>  <br/><br/>  <br/><br/>  <br/><br/>


<input maxlength="255" name="Form testing" size="20" type="hidden" value="Form-name-here" /><br>    

 <input value="Nome" onfocus="if (this.value == 'Nome') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Nome';}" maxlength="255" name="name" size="20" type="text" /><br>

<input value="Telemóvel" onfocus="if (this.value == 'Telemóvel') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Telemóvel';}" id="phone" maxlength="40" name="phone" size="20" type="text" /><br>

<input onfocus="if (this.value == 'Email') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Email';}" value="Email" id="email" maxlength="80" name="email" size="20" type="text" /><br>

<input onfocus="if (this.value == 'Localidade') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Localidade';}" value="Localidade" maxlength="255" name="location" size="20" type="text" /><br>

.

And this is my contacto.php:

<?php
 // Get Data
 $name = strip_tags($_POST['name']);
 $email = strip_tags($_POST['email']);
 $phone = strip_tags($_POST['phone']);
 $location = strip_tags($_POST['location']);

 $headers .="De: Form thingy <[email protected]>";
 $headers .="CC: Mail1 <[email protected]>";
 $headers .=", Mail2 <[email protected]>";

 header("Location: thankyou.html");  //Redirect to Thank You HTML page after email is sent


 // Send message
 mail( "[email protected]", "Formulário Facebook Av. Grátis",
 "Name: $name\nEmail: $email\nPhone: $phone\nLocation: $location\n",
  $headers );
 ?>

Solution

  • Change:

    $headers .="De: Form thingy <[email protected]>";
    

    To:

    $headers ="From: Form thingy <[email protected]>";
    

    "De: is not standard as per PHP manual, use "From:....

    http://php.net/manual/en/function.mail.php

    http://php.net/manual/fr/function.mail.php

    Full code:

    <?php
    // Get Data
    $name = strip_tags($_POST['name']);
    $email = strip_tags($_POST['email']);
    $phone = strip_tags($_POST['phone']);
    $location = strip_tags($_POST['location']);
    
    $headers ="From: Form thingy <[email protected]>";
    $headers .="CC: Mail1 <[email protected]>";
    $headers .=", Mail2 <[email protected]>";
    
    // Send message
    mail( "[email protected]", "Formulário Facebook Av. Grátis",
     "Name: $name\nEmail: $email\nPhone: $phone\nLocation: $location\n",
      $headers );
    
    header("Location: thankyou.html");  //Redirect to Thank You HTML page after email is sent
    ?>