Adjuntar archivo en php mail

Php enviar email con adjunto desde formulario

Hoy en día, casi todas las aplicaciones tienen la capacidad de enviar un correo electrónico. Aparentemente, la funcionalidad parece difícil pero en realidad, enviar un email usando PHP es realmente fácil. La sintaxis de la función mail es la siguiente:

Cada línea del mensaje debe estar separada con un CRLF y las líneas no deben tener más de 70 caracteres. El término CRLF se refiere al retorno de carro (ASCII 13, \r) y al avance de línea(ASCII 10, \n). En windows, ambos son necesarios para describir el final de una línea, mientras que en Linux/Unix sólo se requiere LF.

La función main() abre y cierra un socket SMTP para cada correo electrónico. La función mail() no soporta el envío de adjuntos por defecto. Necesita utilizar diferentes cabeceras y partes de correo MIME para hacerlo posible.

Php send mail with pdf attachment ejemplo

Esta función personalizada o PHP mail attachment script es capaz de enviar un mensaje de correo electrónico de texto plano junto con un único archivo adjunto. El archivo adjunto tiene que ser cargado primero o puede usar un archivo que ya exista en su servidor web. Existen scripts PHP mucho mejores y más avanzados en Internet, pero espero que este ejemplo le ayude a entender cómo es posible enviar un mensaje de correo electrónico con un archivo adjunto utilizando algo de código PHP.

  Soltar o adjuntar archivo en formulario wordpress contact from 7

La función mail() no soporta adjuntos o correo HTML por defecto. Necesita usar diferentes encabezados y partes de correo MIME para hacer esto posible. Muchos proveedores de alojamiento compartido no permiten el uso de esta función y puede estar deshabilitada.

Normalmente pasará tres valores a la función mail() más algunas cabeceras. En el ejemplo de abajo omitimos el valor del mensaje, porque el mensaje se define como una parte MIME junto con el adjunto.

Para sitios web o aplicaciones donde un mensaje de correo electrónico es una parte esencial para su negocio, debería usar un proveedor de servicios de correo electrónico de transacciones profesionales y una clase PHP que funcione para el estándar SMTP. En mi opinión, la clase PHPmailer es un script de correo electrónico muy estable y flexible. Si lo desea, revise también mi tutorial PHPMailer.

Php encabezado de correo electrónico

Podemos acceder al archivo subido y sus diferentes atributos usando el array $_FILES. Este array contendrá el nombre, tamaño, ruta y otros atributos del archivo subido. El siguiente código obtiene el nombre, tipo y tamaño del archivo subido:

En el código anterior, estamos validando el tamaño y tipo de archivo. Tenemos el tamaño máximo de archivo permitido ($max_allowed_file_size) fijado en 100KB. La matriz $extensiones_permitidas contiene las extensiones de todos los tipos de archivo permitidos. El código de validación comprueba si la extensión del archivo coincide con alguna de las extensiones de la matriz $allowed_extensions.

  Hotmail archivos adjuntos bloqueados

El siguiente paso es redactar y enviar el correo electrónico. Utilizaremos la biblioteca Pear para redactar y enviar el correo electrónico. ( ver las instrucciones de instalación de Pear más abajo ) Las clases de Pear PEAR::Mail y PEAR::Mail_Mime se utilizan para enviar el correo electrónico con el archivo adjunto.

La clase Mail_mime() ayuda a componer un mensaje MIME. En el código anterior, se crea un objeto Mail_mime, se actualiza el cuerpo del texto ( $message->setTXTBody($text); ) y se añade el adjunto ( $message->addAttachment(file) )

Código html para enviar correo electrónico con archivo adjunto

Estoy de acuerdo con @MihaiIorga en los comentarios – utiliza el script PHPMailer. Suenas como si lo rechazaras porque quieres la opción más fácil. Créeme, PHPMailer es la opción más fácil por un margen muy grande en comparación con tratar de hacerlo tú mismo con la función mail() incorporada en PHP. La función mail() de PHP realmente no es muy buena.

Para enviar un correo electrónico con archivos adjuntos necesitamos usar el tipo MIME multipart/mixed que especifica que los tipos mixtos serán incluidos en el correo electrónico. Además, queremos utilizar el tipo MIME multipart/alternative para enviar tanto la versión en texto plano como la versión HTML del correo electrónico:

  Hotmail no adjunta archivos

Como puede ver, enviar un correo electrónico con un archivo adjunto es fácil. En el ejemplo anterior tenemos el tipo MIME multipart/mixed, y dentro de él tenemos el tipo MIME multipart/alternative que especifica dos versiones del correo electrónico. Para incluir un adjunto en nuestro mensaje, leemos los datos del archivo especificado en una cadena, los codificamos con base64, los dividimos en trozos más pequeños para asegurarnos de que coinciden con las especificaciones MIME y luego los incluimos como adjunto.

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. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. 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. Más información
Privacidad