Generalidades
Con el lenguaje de programación PHP, puedes crear formularios de correo simples para enviar correos. PHP también tiene un conjunto de funciones IMAP más avanzadas que puede aprovechar para crear formularios de correo más avanzados. Esto te permite guardar los correos enviados y revisar tu bandeja de entrada para ver si hay nuevos mensajes.
La creación de formularios personalizados está más allá del alcance del soporte técnico. Si algo no funciona según lo previsto, el soporte de DreamHost no puede solucionar problemas relacionados con la codificación del formulario.
Notas generales sobre formularios de sitios web
Los ejemplos en esta página muestran un mensaje enviado a través del servidor web DreamHost para la dirección de correo 'De' que se muestra. Debido a esto, el mensaje está sujeto a la política de dominio del remitente:
Si necesitas utilizar una dirección de correo externa para el usuario remitente 'De', es posible que desees considerar la posibilidad de configurar un formulario SMTP para el sitio.
Por favor ten en cuenta que existen límites estrictos de envío al enviar correos desde un servidor web. Visita el siguiente artículo para obtener más detalles:
Función básica para reemplazar mail()
La función imap_mail() puede reemplazar la función estándar mail() que se usa normalmente para enviar correo. Los parámetros para ambas funciones son en su mayoría similares.
Aquí hay un ejemplo básico usando imap_mail():
<?php $to = "recipient@example.com, recipient2@example.com"; $subject = "Test Email"; $body = "This is only a test."; $headers = "From: me@example.com\r\n". "Reply-To: me@example.com\r\n"; $cc = null; $bcc = null; $return_path = "me@example.com"; imap_mail($to, $subject, $body, $headers, $cc, $bcc, $return_path); ?>
Explicación de los campos en este formulario
- $headers
- Esta sección tiene dos campos: From y Reply-To
- La dirección de correo From debe configurarse con la dirección de correo que envía el mensaje. Si no estás usando la autenticación SMTP, esta debe ser una dirección de correo en el mismo dominio desde el que está enviando y debe estar alojada con DreamHost. Si deseas usar cualquier otra dirección como "From", debes usar la autenticación SMTP.
- La dirección de correo Reply-To puede ser configurada con cualquier dirección y recibe las respuestas de vuelta al mensaje del remitente.
- $return_path
- El correo rechazado vuelve al remitente que se indica aquí. Tu quieres que Reply-To y Return-Path estén configurados para el mismo usuario remitente.
Guardar correos enviados
La configuración del formulario anterior le permite enviar el mensaje pero no lo guarda en la carpeta SENT. Si desea ver un registro de todos los correos enviados, puede agregar otra función para almacenar el mensaje en la carpeta SENT.
Para almacenar el mensaje enviado en la carpeta SENT, agrega esta función al archivo PHP. Asegúrate de utilizar el nombre de tu servidor de correo para el nombre de host. En el siguiente ejemplo es imap.dreamhost.com.
<?php //The first line connects to your inbox over port 143 $mbox = imap_open("{imap.dreamhost.com:143/notls}INBOX", "me@example.com", "password"); //imap_append() appends a string to a mailbox. In this example your SENT folder. // Notice the 'r' format for the date function, which formats the date correctly for messaging. imap_append($mbox, "{imap.dreamhost.com:143/notls}INBOX.Sent", "From: me@example.com\r\n". "From: me@example.com\r\n". "To: ".$to."\r\n". "Subject: ".$subject."\r\n". "Date: ".date("r", strtotime("now"))."\r\n". "\r\n". $body. "\r\n" ); // close mail connection. imap_close($mbox); ?>