Cómo enviar un correo electrónico desde un formulario HTML

5 minutos de lectura

avatar de usuario
dfdfd

Sé que hay muchos ejemplos que usan la acción mailto: post para enviar correos electrónicos usando solo formularios html.

Pero al usar esto, aparecerá el cuadro de diálogo de envío de correo electrónico, por ejemplo, el cuadro de diálogo de Outlook. Y en realidad usa nuestro propio servidor smtp para enviar el correo electrónico.

¿Hay alguna forma de crear formularios html que simplemente envíen un correo electrónico al enviarlos?

¿Hay una API de JavaScript que pueda lograr este efecto? Digamos, por ejemplo, node.js?

¿Alguien puede proporcionar algunos ejemplos de código?

avatar de usuario
Yisela

Como dijeron los demás, no se puede. Puede encontrar buenos ejemplos de formularios HTML-php en la web, aquí hay un enlace muy útil que combina HTML con javascript para validación y php para enviar el correo electrónico.

Consulte el artículo completo (incluye ejemplo zip) en la fuente:
http://www.html-form-guide.com/contact-form/php-email-contact-form.html

HTML:

    <form method="post" name="contact_form"
    action="contact-form-handler.php">
        Your Name:
        <input type="text" name="name">
        Email Address:
        <input type="text" name="email">
        Message:
        <textarea name="message"></textarea>
        <input type="submit" value="Submit">
    </form>

JS:

    <script language="JavaScript">
    var frmvalidator  = new Validator("contactform");
    frmvalidator.addValidation("name","req","Please provide your name");
    frmvalidator.addValidation("email","req","Please provide your email");
    frmvalidator.addValidation("email","email",
      "Please enter a valid email address");
    </script>

PHP:

    <?php
    $errors="";
    $myemail="[email protected]";//<-----Put Your email address here.
    if(empty($_POST['name'])  ||
       empty($_POST['email']) ||
       empty($_POST['message']))
    {
        $errors .= "\n Error: all fields are required";
    }
    $name = $_POST['name'];
    $email_address = $_POST['email'];
    $message = $_POST['message'];
    if (!preg_match(
    "/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$/i",
    $email_address))
    {
        $errors .= "\n Error: Invalid email address";
    }
    
    if( empty($errors))
    {
    $to = $myemail;
    $email_subject = "Contact form submission: $name";
    $email_body = "You have received a new message. ".
    " Here are the details:\n Name: $name \n ".
    "Email: $email_address\n Message \n $message";
    $headers = "From: $myemail\n";
    $headers .= "Reply-To: $email_address";
    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
    }
    ?>

  • si lee el comentario en el enlace proporcionado, no se envía ningún correo electrónico como resultado de los códigos anteriores.

    – Tempo

    4 mayo 2016 a las 19:08

avatar de usuario
Antonio Rafael

puede usar el formulario de contacto simple en HTML con PHP mailer. Es fácil de implementar en su sitio web.

De lo contrario, puede ver el video de demostración en el siguiente enlace: Youtube: formulario simple de contacto/comentarios en el correo HTML-PHP

Cuando está ejecutando en localhost, puede recibir el siguiente error:

Advertencia: mail (): no se pudo conectar al servidor de correo en el puerto 25 de "smtp.gmail.com", verifique su configuración "SMTP" y "smtp_port" en php.ini o use ini_set () en S:\wamp\www\sample \mailTo.php en la línea 10

Y esta es la captura de pantalla del formulario HTML:
Forma simple

Y esta es la codificación PHP principal:

<?php
if($_POST["submit"]) {
    $recipient="[email protected]"; //Enter your mail address
    $subject="Contact from Website"; //Subject 
    $sender=$_POST["name"];
    $senderEmail=$_POST["email"];
    $message=$_POST["comments"];
    $mailBody="Name: $sender\nEmail Address: $senderEmail\n\nMessage: $message";
    mail($recipient, $subject, $mailBody);
    sleep(1);
    header("Location:http://blog.antonyraphel.in/sample/"); // Set here redirect page or destination page
}
?>

  • myblog.antonyraphel.in/2015/05/… está marcado como un sitio engañoso por Google Chrome, actualice el enlace

    – Tanckom

    20 de julio de 2018 a las 15:45

  • Los enlaces etiquetados como “Formulario simple de contacto/comentarios en HTML con php (correo HTML-PHP)” y “Formulario simple de contacto/comentarios en correo HTML-PHP” ya no existen. Ambos eran enlaces al sitio “myblog.antonyraphel” mencionado en el comentario anterior como posiblemente marcado como un siby engañoso por Google Chrome. Estos enlaces probablemente deberían eliminarse de la publicación.

    – SherylHohman

    25/03/2020 a las 19:00


  • Los enlaces están muertos.

    – k_kumar

    23 de abril de 2021 a las 4:47

avatar de usuario
LOLWTFasdasd asdad

Como muchas respuestas en este hilo ya sugieren, no es posible enviar un correo desde una página HTML estática sin usar PHP o JS. Solo quería agregar que existen algunas soluciones excelentes que tomarán su solicitud HTTP Post generada por su formulario y crearán un correo a partir de ella. Esas soluciones son especialmente útiles en caso de que no desee agregar JS o PHP a su sitio web.

Básicamente, esos servidores se pueden configurar con un servidor de correo que se encarga de enviar el correo electrónico. El receptor, el asunto, el cuerpo, etc. son recibidos por el servidor desde su publicación HTTP(S) y luego se introducen en el correo que desea enviar. Entonces, técnicamente hablando, todavía no es posible enviar correos electrónicos desde su formulario HTML, pero el resultado es el mismo.

Algunas de estas soluciones se pueden comprar como solución SaaS o puede alojarlas usted mismo. Solo mencionaré algunos, pero estoy seguro de que hay muchos en caso de que alguien esté interesado en la tecnología o el servicio en sí.

No puede, lo único que puede hacer con html es abrir su aplicación de correo electrónico predeterminada. Debe usar un código de servidor para enviar un correo electrónico, php, asp .net….

No puede enviar correos electrónicos usando javascript o html. Necesita secuencias de comandos del lado del servidor en php u otras tecnologías para enviar correos electrónicos.

avatar de usuario
sid malani

Html por sí solo no enviará correos electrónicos. Necesitará algo que se conecte a un servidor SMTP para enviar un correo electrónico. Por lo tanto, Outlook aparece con mailto: de lo contrario, su formulario va al servidor que tiene un script que envía correo electrónico.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad