2012-07-02 25 views
7

Estoy tratando de enviar correos electrónicos usando PHP. El correo electrónico es un correo electrónico HTML con cientos de líneas de código HTML (en el archivo email.html). No quiero escribir todo el código HTML en PHP. ¿Cómo puedo hacerlo? ¿Mi método de abajo es correcto? ¿Alguna mejor alternativa?Enviando correo electrónico HTML usando PHP: incluyendo el archivo HTML

Mi código (PHP):

$email_text = file_get_contents('email.html'); 
$headers = "From:[email protected]"; 

mail('[email protected]', 'Hello', $email_text, $headers); 

Mi correo electrónico de archivos (email.html):

<html> 
    <body> 
      <a href="http://google.com">Hello</a> 
    </body> 
</html> 

Mi problema: Quiero enviar un correo electrónico HTML que mostrará el contenido HTML . El contenido HTML se toma de un archivo llamado email.html.

Nota 1: He simplificado el código anterior solo por la claridad. El código original tiene encabezados que mostrarán el código HTML correctamente. Además, el archivo HTML original tiene cientos de estilos de línea y CSS. He mencionado solo algunas líneas solo para simplificar.

Nota 2: Hay muchos duplicados de envío de correo electrónico usando PHP pero no pudieron encontrar la manera de incluir un archivo HTML grande en una sola línea de código PHP.

+0

im no está claro en cuanto a lo que la pregunta real es. –

+0

@Dagon: Edité mi pregunta. Espero que esté claro ahora. –

+1

anterior debería funcionar bien, ¿está diciendo que no? Si es así, ¿de qué manera no funciona? –

Respuesta

4

actualización para la pregunta actualización:

Si no desea incluir todo lo que HTML en su código PHP, entonces sí file_get_contents() es una buena alternativa.


Debe incluir el tipo de contenido y la versión MIME en los encabezados. Este es el juego de caracteres UTF-8 también.

$headers = "From: $from <$from_email>\r\n". 
      "MIME-Version: 1.0" . "\r\n" . 
      "Content-type: text/html; charset=UTF-8" . "\r\n"; 

http://php.net/manual/en/function.mail.php

+1

Gracias. Pero no estoy preguntando cómo enviar correos electrónicos HTML. Estoy preguntando cómo obtener el contenido del correo electrónico HTML desde un archivo HTML. Editado mi pregunta. –

+1

@iSumitG entonces no debería haber aceptado esta respuesta. Descubrí que http://stackoverflow.com/questions/259622/how-to-attach-html-file-to-email-using-content-taken-from-db-in-php podría ayudar a otra persona – sanchy

Cuestiones relacionadas