Como enviar un email con archivo adjunto desde php?

  • 3 Respuestas
  • 4510 Vistas
*

octavio Mexico

  • **
  • 94
  • +4/-0
    • Ver Perfil
Como enviar un email con archivo adjunto desde php?
« en: Septiembre 09, 2015, 06:09:41 pm »
Hola a todos,

necesito enviar un email con archivo adjunto (un pdf o un excel) desde php, se hacerlo en texto plano pero no se enviarlo con el archivo adjunto.

Me pueden ayudar a ver como enviar un email con archivo adjunto? Gracias



*

Jonathan

  • *****
  • 127
  • +156/-0
  • Don't work hard, work intelligent
    • Ver Perfil
    • Ingeniero en Sistemas Computacionales
Re:Como enviar un email con archivo adjunto desde php?
« Respuesta #1 en: Septiembre 09, 2015, 06:17:21 pm »
Hola amigo,

Espero este codigo te sirva para mandar un archivo adjunto, es la forma en la que yo lo hago..

Código: [Seleccionar]
$separator = md5(time());

    $eol = PHP_EOL;

    $filename = "temp/archivo.xlsx";

    $pdfdoc = file_get_contents($filename);
    $attachment = chunk_split(base64_encode($pdfdoc));

    $headers  = "From: \"TuEmpresa\"<" . $email_from . ">".$from.$eol;
    $headers .= "MIME-Version: 1.0".$eol;
    $headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"";

    $body = "--".$separator.$eol;

    $body .= "Content-Type: text/html; charset=\"utf-8\"".$eol;
    $body .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
    $body .= $message.$eol;

    // adjunto
    $body .= "--".$separator.$eol;
    $body .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol;
    $body .= "Content-Transfer-Encoding: base64".$eol;
    $body .= "Content-Disposition: attachment".$eol.$eol;
    $body .= $attachment.$eol;
    $body .= "--".$separator."--";

    $error_ocurred = mail($email_to, $subject, $body, $headers);
    if(!$error_ocurred){
        echo "<center>Ocurrio un problema al enviar su información, intente mas tarde.<br/>";
        echo "Si el problema persiste contacte a un administrador.</center>";
    }else{
        echo "<center>Su informacion ha sido enviada correctamente a la direccion de email especificada.<br/>(sientase libre de cerrar esta ventana)</center>";
    }

*

Jonathan

  • *****
  • 127
  • +156/-0
  • Don't work hard, work intelligent
    • Ver Perfil
    • Ingeniero en Sistemas Computacionales
Re:Como enviar un email con archivo adjunto desde php?
« Respuesta #2 en: Septiembre 09, 2015, 06:18:53 pm »
Antes deberas tener algunas variables declaradas..

Código: [Seleccionar]
	$email = //EMAILTO; 
    $message = //MENSAJE;
    $subject = //TEMA

    $email_to = $email;
    $email_from = 'email@email.com';

Como ves yo solo recibo la direccion de email y un mensaje para mostrar en formato texto plano.
El archivo lo leo desde una ruta del servidor, desde una carpeta llamada temp.

Cualquier duda me dices..
Saludos!

*

octavio Mexico

  • **
  • 94
  • +4/-0
    • Ver Perfil
Re:Como enviar un email con archivo adjunto desde php?
« Respuesta #3 en: Septiembre 09, 2015, 06:22:32 pm »
Muchas gracias amigo, me salvaste la vida!