简体   繁体   中英

Send the data of this form to a gmail account via php

I want to send the data from this form to a gmail account via php. Now if I send it nothing happens, include the spam folder.

    <label for="email" id="email">Email <span>*</span></label>
    <input type="email" id="" name="email">

     <div>
         <div>
            <label for="name" id="text">Nombre <span>*</span> </label>
            <input type="text" id="name" name="name">
         </div>
         <div>
            <label for="tlf-num">Teléfono <span>*</span> </label>
            <input id="tlf-num" type="text" name="tlf-num" >
        </div>
     </div>
    <div>
        <label for="message" id="#">Mensaje</label>
        <textarea contenteditable="false" name="message" id="message" cols="30" rows="10"></textarea>
    </div>
    <input type="submit" value="ENVIAR">
</form>

This is the php, I don´t know what is wrong. This code was works for me about three years ago on other website. I read about email headers and gmail style accounts which take problems on recibe but I don´t know. I´m feeling a bit confussing about whats happen.

<?php

if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['tlf-   num']) && isset($_POST['message']) != ""){

$nombre = $_POST['name'];
$mail = $_POST['email'];
$header = 'From: ' . $mail . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje = "Nombre " . $nombre . " ";
$mensaje .= "Su e-mail es: " . $mail . " \r\n";
$mensaje .= "Mensaje: " . $_POST['message'] . " \r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
$para = 'loquesea@gmail.com';
$asunto = 'Formulario contacto Web';

mail($para, $asunto, utf8_decode($mensaje), $header);
echo "<script type='text/javascript'>
    setTimeout( function() {
      window.location.href='https://loquesea.com';
    }, 1500)
     </script>";
}
else{
    echo "<script type='text/javascript'>
        alert('Revisa los datos');
        window.location.href='https://loquesea.com';
 </script>";
}

?>

I check my php.ini file after the first answer and have this configuration, maybe need to change something or add any option or something else?.

[mail function]
; For Win32 only.
; http://php.net/smtp
; SMTP = localhost
; http://php.net/smtp-port
; smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path = "env -i /usr/sbin/sendmail -t -i"

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail().
;mail.force_extra_parameters =

; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On

; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
;mail.log =
; Log mail to syslog (Event Log on Windows).
;mail.log = syslog

Please check your php.ini file for mail settings. THe mail() function uses the parameters set in .ini file to send mails.

For Ubuntu:

Install sendmail

sudo apt-get install sendmail

Configure your host here

sudo vim /etc/hosts

(Vim is the text editor here)

Save it and run config for sendmail

sudo sendmailconfig

Finally, restart Apache

sudo service apache2 restart

Refer this link for more details

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM