Formulario de Contacto PHP Gratis v3: Adjuntar archivo al mail


Acá va otro update del formulario de contacto en PHP. La nueva funcionalidad permite cargar un archivo y enviarlo como attachment del email usando PHP. Esta versión es en realidad una actualización de la v2. Ahora, además de copiar el archivo en el servidor y enviar el link al archivo en el mail, el script va a enviar el mail adjuntando el archivo del usuario.

Para agregar esta funcionalidad, el formulario utiliza la clase PHPMailer para el envío y proceso. La clase PHPMailer es un script PHP que permite infinitos usos a la hora de procesar envíos de mails con PHP. Se puede usar un determinado servidor SMTP, adjuntar archivos,
Es solo un ejemplo de una posible implementacion de PHPMailer
La clase se puede descargar desde http://phpmailer.sourceforge.net/ Junto con mas ejemplos y documentacion.

La configuración es muy sencilla, sólo deben descomprimir los archivos y editar las primeras lineas del archivo contactenos-v3.php. Luego deben crear una carpeta llamada “archivos”, y asignarle CHMOD 777. Hay que mantener el archivo class.phpmailer.php en el mismo directorio. El archivo class.smtp.php nos va a permitir realizar configuraciones adicionales, como utilizar otros servidores SMTP llegado el caso.

—————————————-
ACTUALIZACION 17-01-2008
Debido a varias preguntas, he subido una versión del formulario que no valida los campos, ni el tamaño, ni el formato del archivo.

—————————————-
Ejemplos:

Formulario para envio de mail con archivo adjunto. (con validación de datos)

Formulario para envio de mail con archivo adjunto. (SIN validación de datos)

Descargar:
contactenos-v3.zip (con validación de datos)
contactenos V3.1.zip (sin validación de datos)

Espero que les sirva.

Esta entrada fue publicada en PHP y etiquetada , , . Guarda el enlace permanente.

151 respuestas a Formulario de Contacto PHP Gratis v3: Adjuntar archivo al mail

  1. Luis dice:

    Hola diego

    Mira a mi me paso lo mismo con otra pagina, usando ese mismo formulario me llegaban los campos de E-mail, Nombre y demas vacios, aunque si me llegaba el formato del mensaje.

    Investigando y probando en otros servidores, me di cuenta de que los permisos que tenia en la carpeta desde donde llamo al formulario no se modificaban. Hable con mi proveedor, me arreglo ese detalle y el formulario funciona bien. Quiza por ahi podrias encontrar la solucion.

  2. Alfonso dice:

    gracias por los comentarios!
    estuve revisando los formularios y arregle un bug que hacia perder el nombre y email en el cuerpo del mensaje.

    estan actualizados los archivos de descarga con los arrelgos.

    saludos!

  3. abraham dice:

    echame la mano me marca el siguiente error

    Warning: copy(archivos/administrador-1478228476.jpg) [function.copy]: failed to open stream: No such file or directory in /home/dgcontro/public_html/PRUEBAS/contactenos-v2.php on line 67

    cambie a permisos 777, Y SE CREO LA CARPETA ARCHIVOS

    que podra estar mal?????

    para sabe r cuando repondan mi mail es branimlm@hotmail.com

  4. Natalia dice:

    Hola que tal buenas tardes esta excelente el formulario, pero una consulta necesito agregar tres campos mas, me podria ayudar en donde tengo que hacer los cambios yo agregue pero me sale error al momento de enviar, espero que ustedes me puedan ayudar muchas gracias estare a la espera. saludos

  5. juan dice:

    hola la verdad que soso muy amable en compartir tus conocimientos::: me alegra ver gente como vos…
    Solamente gracias.. te tengo de ejemplo CAPO

  6. Señor, es usted un Dios, muchisimas gracias por este aporte, me haz salvado de una gigante, si tienes una cuenta de paypal para hacerte un aporte simbolico me sentiria muy bien.

    Muchisimas gracias, eres grande!!!!

  7. ivan dice:

    hola…oye

    como va el directorio

    contactenos-v3.php eso afuera

    dentro de carpeta CHMOD 777
    junto con carpeta archivos y meter las otras cosas

  8. Michael dice:

    Hola

    he intentado crear un formulario de contacto pero no puedo y no se que es lo que estoy haciendo mal

    porfavor orientame

    esta es la pag http://www.constructoraangelmo.cl/Constructora/contacto.php

    saludos

  9. Jose dice:

    excelente! me sirve para nformar pagos :)

    saludos

  10. OLber dice:

    Hola muy buen aporte. Me adjunta la imagen y la envia al servidor. Pero por mail no me llega. Gracias.

  11. Hugo dice:

    Hola que tal, como puedo modificar el archivo para un servidor pop3???
    SALUDOS.

  12. Hector dice:

    Te agradezco mucho tus aportes…sin embargo soy nuevo en esto, y claro, al usar copiar y pegar no me funciono.

    Te molestaria ayudarme?

    La idea es colocar por ejemplo en el cpanel del Sitio, en public_html una carpeta llamada archivos y dentro de ella los “class.smtp.php” y “class.phpmailer.php”??? no entendi bien….hice las modificaciones del correo electronico para que me llegara de prueba y nada.

    Ademas cambie (en un segundo intento) el nombre de usuario y host del codigo que tu nos brindaste, por los de acceso del cpanel de mi sitio…

    Estoy muy enredado y pido disculpas por la falta de conocimiento, pero agradeceria infinitamente tu ayuda

    mi mail por siacaso thekinghectorsalive@gmail.com

  13. luis covarrubias dice:

    Gracias! es muy útil, pero tengo una pregunta, como puede agregar a una pagina ya hecha tu formulario? es decir, insertarlo en alguna parte de la pagina? espero no ser molesto
    gracias!

  14. javier dice:

    Muchas gracias por el formulario, tengo dos dudillas

    si envio un zip al formulario al clickear el link me abre una pagina en blanco buscando la aplicacion, como podria elimiarno

    y mi segunda prpegunta es como puedo enviar un mensaje a la dirección de correo que has enviado con un mensaje.. gracias por enviar el formulario, en breve nos pondremos en contacto con usted, muchas gracias.

    GRACIAS

  15. Pablo Leyes dice:

    Hola Alfonso:
    estoy tratando de bajar el formulario de contacto y te adelanto que soy nuevo en esto, quisiera saber como hago para asignarle CHMOD777 a la carpeta “Archivos”. Muchas gracias.

  16. jimmy gracia osorio dice:

    jjjjjj

  17. Daniel dice:

    Puedes cambiar los permisos de la carpeta “archivos” desde tu programa FTP, (yo uso FileZilla) seleccionando “permisos del archivo…” del menú contextual al darle clic alterno sobre la carpeta.

    Si no usas FileZilla, puedes cambiarlos directamente desde el navegador de archivos de tu cpanel.

    Espero haberte aclarado algo.

    Acabao de descargar el formulario, voy a probarlo pero a juzgar por los comentarios parece que funciona muy bien.

  18. MARIAC dice:

    Hola: tengo un sitio construido con ferozo, el mismo esta alojado en Dattatec, a pesar de la mala prensa que tiene, el servicio funciona muy bien ,lo que es muy deficiente es el soporte tecnico, jamas te solucionan una consulta. Mi sitio es de propiedades en alquiler, por ahora estoy utilizando el formulario tradicional, este me llega a mi y yo lo reenvio al propietario correspondiente. Lo ideal seria poner en cada propiedad un formulario para que sea directamente enviado al propietario . Se que puede hacerse con PHP, pero no he tenido exito con los intentos. desde ya muchas gracias por tu atencion.

  19. raul dice:

    Ya me funciono , solo deseo saber como le hago en mi codigo php para que una vez que se haya enviado me direccione a la pagina de inicio de contacto , les voy agradecer mucho y donde lo acomodo.
    Saludos.

  20. Alejandro dice:

    Hola esta muy bueno tu formulario, pero quisiera saber si me puedes ayudar para combinar la opcion de adjuntar archivo a un formulario que ya estoy usando, el cual me funciona bien pero quisiera permitir que mis clientes me envien un archivo adjunto. Muchas gracias…

    Mi codigo PHP es:

  21. Orlando Riaño dice:

    Muchas gracias por este código, no soy diseñador web, soy escritor y quería adicionar un formulario sencillopara una página y funcionó a las maravillas. Muchas gracias, estoy agradecido. En lo que requiera de escritura o corrección de estilo estoy a la orden, ha sido fantástico encontrar personas como usted que disfrutan por transmitir el conocimiento. Muchas gracias.

  22. lolo dice:

    muy bien por el codigo nada mas que no e podido usarlo porque me aparece esto:

    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request

    soy muy novato pero no se que me falto :(

  23. Erika Mendoza dice:

    Alfonso, no sabes lo mucho que te agradezco por proporcionarnos tan maravilloso código, me he pasado todo el dia desde las 9:00 am hasta que finalmente di con el y me ha funcionado maravillosamente, muchisimas gracias.

  24. jose_arg dice:

    hola amigo tengo problemas para poder crear una biblioteca virtual. en la que tengo que dar al usuario una opsion para poder subir los libros a una nueva pag. y mostrarlos en hotra todos los libros que tengo dentro del formulario

  25. jose_arg dice:

    mi correo personal es jose-arg1989@hotmail.com

  26. Paco dice:

    Me salvaste la vida. Eres un genio. Espero no caiga tu web esta de lujo.

  27. joga dice:

    Queria saber si me puedes ayudar en lo q es agregar una auto respuesta para el formulario, es decir q le llege a la persona q llena el formulario un correo indicando q pronto me comunicare con el.

    Gracias

  28. enrique dice:

    oye como puedo instalar este contacto en un pagina de wordpress este es mi correo personal

    master7097@hotmail.com espero y me puedas ayudar

  29. Gracias por el aporte me funciono de maravillas!

  30. Mario Angel dice:

    Hola:
    Antes que nada les comento que no tengo mucha idea de diseño y lenguajes.
    Hasta hace unos dias en mi sitio web tengo un formulario donde me pueden enviar mensajes, pero dattatec cambio algo del php y ya no funciona, les puedo enviar los archivos para ver si alguie me los puede arreglar. Gracias

  31. Michel dice:

    Hola Alfonso Catrón, gracias por compartir este formulario en nuestro idioma.

    Podrias por favor decirme, como podria hacer para agregar otros campos?? Necesito agregar 2 campos normales de texto y 2 mas para subir imagenes, podrias indicarme como hacer??.

    Estare pendiente!! y disculpa la molestia.

  32. Pedro llavero dice:

    Me salvaste la vida, bueno es una forma de hablar llevaba bastantes dias intentando implementar, un formulario con archivo adjunto, tanto la versión 2 como la 3 funciona perfectamente sigue así.

    Salu2

  33. javier dice:

    hola yo kisiera hacerle a mi web http://www.rockdegarage.com.ve una aprte de comentarios que en cada articulo la gente pueda agregar comentarios comentar debidamente registrados.. gracias ahh y excelente formulario tiempo buscando uno asi para un blog.

  34. javier dice:

    otra cosa amigo podrias por favor marcar con ROJO la linea que se va a modificar ejemplo, en tal sitio cambias este correo por el tuyo, aqui pones la direccion de tu web y asi sucesivamente
    gracias pana. saludos desde venezuela

  35. javier dice:

    y comos e configura el php mailer

  36. Andres dice:

    Muy bueno el formulario, pero necesito saber en que versión de PHP esta escrito este formulario.
    Gracias!!

  37. Javier dice:

    hola, como tendria que hacer con el codigo para que el e-mail se envie a dos correos simultaneamente? espero su ayuda, desde ya muchas gracias ! me sirvio de mucho

  38. David dice:

    Hola,he diseñado mi web con una plantilla y dreamweaver en html.Estoy buscando una plantilla de formulario,a ser posible con archivo adjunto.He visto que los archivos que has colago son en php.Pero yo no se como hacer mi htlm y referenciarlo a tu php.Gracias.

  39. dacm dice:

    Hola,
    Estoy usando el formulario y funciona de maravilla. Gracias por la ayuda :D, solo una duda… necesito adjuntar archivos con la extensión “.docx” que es de Word, ya hice el “case” correspondiente en el archivo php pero aún así, no me deja adjuntar estos archivos, debo modificar algo más? o debo modificar algo directamente en mi servidor?

    Cualquier ayuda será útil. De nuevo mil gracias por el script, bye.

    dacm,

  40. jose dice:

    Hola amigo…
    ¿como se configura para que requiera autenticacion de smtpy asi evitar envio de spam?
    muchas gracias.

  41. Esteban dice:

    Estimados! este formulario funciona de maravilla y realmente es muy bueno. pero hay algunas cosas que a simple vista no se pueden arreglar editando el codigo. ya hay varios que dicen que el mail no les llega y eso es sencillamente por que el servidor donde alojan el php para el envio del mail requiere autentificacion smtp, en este caso es lo que me esta pasando a mi. eh tratado de editar los archivos para poder realizar el envio pero no lo he podido solucionar, si alguien pudo favor que diga que se edita para la autentificacion

    saludos

  42. Esteban dice:

    Estimados
    para agregar autentificación con smtp deben agregar el siguiente código en el sector “//recogemos las variables y configuramos PHPMailer”

    $mail->IsSMTP();
    $mail->Host = “localhost”;
    $mail->SMTPAuth = true;
    $mail->Username = “tucuentademail”;
    $mail->Password = “tupassword”;

    agregando eso se soluciona lo de al autentificación

    saludos!

  43. Alfonso dice:

    Muchas Gracias por el aporte Esteban!

  44. Esteban dice:

    Estimado Alfonso! gusto en saludarte,
    he estado ya una tarde trabajando con tu formulario y funciona muy bien! logre hasta adjuntar mas de un archivo y todo ..
    el problema es que trate de agregar mas campos para el envio y los mails nunca llegaron .. por deducción y haciendo pruebas y error logro decifrar que cuando le ingreso mucho texto a la variable $contenido este simplemente no envia los mails!

    tu sabes como puedo solucionar esto? o te ha pasado ..

    estoy haciendo un formulario con 15 campos y solo puedo hasta el momento 3.. sin contar el texto que tendría cada caja de texto ..

    saludos y espero haber si tienes comentarios

    saludos

  45. Alfonso dice:

    Hola Esteban,

    para agregar más campos, acordate que además de crear los inputs en HTML, tenés que recoger esos inputs en nuevas variables usando POST, y pasar esas variables.

    Los campos se están recogiendo en donde dice
    //recogemos las variables y configuramos PHPMailer

    Por ejemplo, si tenés un input llamado ‘provincia’, vas a tener que recogerlo con
    $provincia=$_POST['provincia'];

    y donde está la parte de “//armamos el html”, agregar una linea por cada campo que agregaste, así llega en el email.
    $contenido .= 'Provincia: '.$provincia.'';

    También estaría bueno agregar un validar los campos antes de enviar el formulario, para evitar spammers y otros problemas.
    Saludos!

  46. sermalefico dice:

    Hola!! muy bueno el form, ando adaptandolo un poco y me gustaria saber si hay la posibilidad de quitarle la validación al campo de archivo solamente! gracias!
    un saludo

  47. damian dice:

    Buenas. Felicidades por el tutorial, está genial.
    Quería preguntarte si hay alguna forma de que los archivos no se vayan acumulando en la carpeta del servidor y se vayan eliminando. Es posible?

  48. juan alberto dice:

    Tengo mis duds el formulario se ve excelente, pero y si no quiero adjuntar nada como quito esa secuencia????

  49. javier dice:

    ers un groso…. gracias

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>