Permitir que un visitante envíe un archivo a través del formulario HTML por correo electrónico con PHPMailer

  • Joseph Goodman
  • 0
  • 3969
  • 196
Anuncio

Si bien Internet se ha convertido en una comunidad donde la mayoría de nosotros conversamos e intercambiamos ideas sobre artículos que leemos dentro de las áreas de comentarios, foros y correo electrónico, también hay otros casos en los que se necesitan comentarios, y esos métodos no son lo suficientemente buenos. A veces, un webmaster simplemente necesita proporcionar la capacidad para que un visitante del sitio web envíe un archivo por correo electrónico. Si lo piensa, proporcione un área de comentarios o “libro de visitas” es simple en estos días.

Si solo necesita un formulario con campos de texto para que sus visitantes puedan proporcionar comentarios o enviar solicitudes y comentarios, eche un vistazo al artículo que escribí 3 Generadores de formularios de contacto gratuitos para su sitio web 3 Generadores de formularios de contacto gratuitos para su sitio web en un formulario de contacto gratuito generadores que deberían hacer el truco.


Sin embargo, si necesita la funcionalidad adicional de un “expediente” campo donde sus visitantes pueden adjuntar un archivo, entonces necesitarán sacar una bolsa diferente de trucos. En este artículo, explicaré qué enfoque para hacer esto es el más seguro, y luego le mostraré cómo usar una herramienta gratuita muy buena en su sitio web que le permite incorporar esta función en su sitio web propio.

Métodos para enviar un archivo por correo electrónico Formulario HTML

Hay muchas razones por las que puede necesitar que los visitantes de su sitio web le envíen un archivo. Tal vez estás aceptando solicitudes de empleo y currículums. Tal vez usted es un editor y desea proporcionar una forma rápida para que los autores envíen sus historias cortas. Independientemente de la razón, la transmisión instantánea de archivos es una conveniencia y un peligro para la seguridad, por lo que debe manejarse de la manera correcta.

Hay un elemento de la etiqueta FORM que le permite cargar un archivo a su servidor a través del método POST. Necesitará un script (ACCIÓN) para procesarlo y almacenarlo en un directorio en su servidor. W3Schools proporciona un ejemplo realmente útil de cómo hacer esto usando PHP, que pensé que estaba bien diseñado y era lo suficientemente fácil de seguir si este enfoque le conviene.

Sin embargo, aunque siempre he preferido PHP sobre otros scripts, realmente no me siento seguro de permitir que mis visitantes carguen un archivo en mi servidor. Hay formas en que puede hacer que el proceso sea más seguro y bloquear los spammers, pero aún me inquieta un poco el potencial de virus u otros archivos desagradables. Por esta razón, realmente prefiero que el envío del formulario se empaque en un correo electrónico y me lo envíe.

Mi sistema de correo electrónico tiene un excelente escáner de virus para archivos adjuntos, por lo que sé que puedo manejar cuidadosamente los archivos con este enfoque. Es por eso que recurrí a la solución gratuita llamada PHPMailer-FE. Este es un producto que forma parte de un proyecto de código abierto más grande (¡por favor done si usa el formulario!)

Decidí ir con una solución previamente desarrollada, porque con toda honestidad, aunque sé cómo crear un formulario y pasarlo a un script que podría escribir para procesar la información, ¿por qué reinventar la rueda cuando hay un desarrollo tan bien desarrollado? paquetes ya disponibles, y PHPMailer es absolutamente uno de ellos.

Descargar y configurar PHPMailer

Cuando descargue el archivo Zip, descubrirá 3 carpetas - _lib, DOCS y formas_muestras. Ahora, los desarrolladores ofrecen una increíble cantidad de documentación en su sitio y en los foros de desarrolladores. Pero, para ser honesto, realmente no tiene que cambiar mucho para que un formulario simple funcione en su sitio.

En el “formas_muestras” directorio, encontrará algunos ejemplos que los desarrolladores ya crearon para usted. En este artículo instalaré la muestra form.html y que funcione con solo unas pocas configuraciones menores. Si no tiene la capacidad de editar archivos en su cuenta de alojamiento web, salte a continuación a las ediciones antes de cargar los archivos. De lo contrario, puede cargar los archivos primero.

Mantenga la misma estructura de directorio y asegúrese de que el archivo HTML con el formulario esté solo un directorio arriba. Si desea lo contrario, tendrá que cambiar la forma en que el formulario hace referencia al script PHP (ver más abajo). En realidad, me equivoqué cuando cargué, realmente solo necesitas la carpeta _lib y el archivo HTML; la carpeta DOCS es simplemente para tu información.

Vaya a la carpeta _lib y edite el form.config.php expediente. Aquí es donde realmente puede ajustar cómo se comporta su formulario. La única edición requerida es configurar a dónde irá la publicación. También agregué el “tema” campo, porque quiero usar este formulario en varios sitios web, y cuando llegue a mi buzón de correo quiero saber de dónde vino: la línea Asunto le dirá que.

Para habilitar cualquiera de estas funciones, todo lo que tiene que hacer es eliminar el código de comentario “//” y eres bueno para ir.

Un ejemplo de la forma en acción

Para demostrar el formulario, he copiado el ejemplo form.html en mi sitio web Esto es lo que parece.

Me encanta esto ... mira lo simple que es el formulario, y puedes incrustarlo donde quieras en tu página web. Tiene “necesario” funcionalidad de campo para que el usuario no pueda enviar el formulario sin al menos ofrecer su nombre y dirección de correo electrónico, y por supuesto tiene exactamente lo que estamos buscando: dos campos de carga donde el visitante puede adjuntar hasta dos archivos. Así es como se ve el código FORM de ejemplo (este es el formulario que incrustará en su propia página web).

Hay dos formas de tomar esto. Copie todo el código en el form.html muestra el archivo desde la etiqueta hacia abajo, o puede extraer solo los elementos FORM e insertarlos en su propio formulario personalizado, formateado de la manera que desee. Este es probablemente el enfoque que tomaré.

La única parte crítica de esto es que el “acción” debe apuntar a la ubicación del “phpmailer-fe.php” guión. Ahora que tengo el form.html listo para usar, y el archivo de configuración del formulario personalizado para enviar a mi dirección de correo electrónico e incluir un asunto, es hora de probar y ver qué sucede. Fui al formulario y envié solo mi nombre, correo electrónico, y adjunté una foto de un lobo. Un segundo o dos después de enviar el formulario, esto es lo que llegó a mi bandeja de entrada.

Notará que el encabezado del correo electrónico tiene al remitente como la dirección de correo electrónico ingresada en el formulario, y la línea de asunto le indica qué sitio web envió el formulario. Lo mejor de todo, eche un vistazo a lo que se adjunta al correo electrónico.

¡Dulce! Por lo tanto, con solo un par de ediciones de archivos de configuración muy pequeñas, ahora puede permitir que sus visitantes envíen un archivo a través de un formulario HTML por correo electrónico, y no tuvo que escribir una sola línea de código.

Personalizando el comportamiento de su formulario

Antes de concluir, hay una pequeña cosa que es importante modificar si desea que el formulario parezca profesional. Actualmente, tras una presentación exitosa, por defecto envía al visitante a esta página web de aspecto divertido.

Que animado “Tratamiento… ” bit es en realidad solo un GIF animado: no hay magia detrás de él. Esta página está definida en el form.config.php archivo al que hice referencia anteriormente. Para personalizar las páginas de respuesta, simplemente abra ese archivo nuevamente, elimine las barras inclinadas de comentarios “//” para esos campos y reemplazar el”replyemailfailed.html” entrada y la “replyemailsuccess.html” ingrese con sus propias páginas web personalizadas de éxito o fracaso.

Definitivamente sugeriría revisar ese archivo de configuración y explorar todas las formas en que puede ajustar cómo se comporta este formulario. PHPMailer es un script de procesamiento de formularios preempaquetado muy versátil y útil que puede usar para una amplia variedad de propósitos en su sitio web. ¿Por qué reinventar la rueda cuando alguien ya ha inventado un auto tan poderoso y bien hecho? Todo lo que tienes que hacer es entrar y conducir!

¿Tiene uso para PHPMailer en su sitio web? ¿Utiliza sus propias herramientas o técnicas para agregar fácilmente formularios a su sitio donde los visitantes pueden adjuntar archivos? Comparta su opinión en la sección de comentarios a continuación.




Nadie ha comentado sobre este artículo todavía.

Sobre tecnología moderna, simple y asequible.
Tu guía en el mundo de la tecnología moderna. Aprenda a usar las tecnologías y los dispositivos que nos rodean todos los días y aprenda a descubrir cosas interesantes en Internet.