Enviar correo con pdf adjunto con MIME a destinatario Outlook o hotmail
Publicado por Mike (17 intervenciones) el 01/11/2011 22:06:38
Que tal listeros, espero y me puedan ayudar..
tengo un pequeño detalle tratando de enviar un correo en PHP utilizando MIME...a clientes o destinatarios Outlook o hotmail.
La cosa es la siguiente, el codigo al parecer solo me funciona con los servidores o servicios de gmail, el correo y el archivo que adjunto llegan sin ningun problema; el problema esta con los servidores de Microsoft y hotmail (Hasta el momento no he probado otros).
el correo llega pero el archivo parece estar dañado. ya he cambiado algunos valores pero continuo teniendo el mismo problema.
Alguien le ha pasado algo similar?? alguien me puede indicar como le tengo que hacer para enviar correos con MIME o con otro servicio a destinatarios en Outlook y/o Hotmail...
aqui esta el codigo que utilizo....Hasta el momento solo me ha funcionado con gmail
// email stuff (change data below)
$to = "[email protected]";
$from = "xx@xxxx";
$subject = "Orden de Carga";
$message = "<p>Orden de Carga </p>";
// a random hash will be necessary to send mixed content
//$separator = md5(time());
$separator =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;
// attachment name
$filename = "Orden de Carga.pdf";
// encode data (puts attachment in proper format)
$pdfdoc = $pdf->Output("", "S");
$attachment = chunk_split(base64_encode($pdfdoc));
// main header (multipart mandatory)
$headers = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol;
//$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol;
$headers .= "Content-Type: application/pdf; boundary=\"".$separator."\"".$eol.$eol;
//$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "This is a MIME encoded message.".$eol.$eol;
// message
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$headers .= $message.$eol.$eol;
// attachment
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol;
$headers .= "Content-Transfer-Encoding: base64".$eol;
$headers .= "Content-Disposition: attachment".$eol.$eol;
$headers .= $attachment.$eol.$eol;
$headers .= "--".$separator."--";
// send message
$ok=mail($to, $subject, "", $headers);
echo $ok?" Mensaje enviado":"<h1> Mail not SEND</h1>";
tengo un pequeño detalle tratando de enviar un correo en PHP utilizando MIME...a clientes o destinatarios Outlook o hotmail.
La cosa es la siguiente, el codigo al parecer solo me funciona con los servidores o servicios de gmail, el correo y el archivo que adjunto llegan sin ningun problema; el problema esta con los servidores de Microsoft y hotmail (Hasta el momento no he probado otros).
el correo llega pero el archivo parece estar dañado. ya he cambiado algunos valores pero continuo teniendo el mismo problema.
Alguien le ha pasado algo similar?? alguien me puede indicar como le tengo que hacer para enviar correos con MIME o con otro servicio a destinatarios en Outlook y/o Hotmail...
aqui esta el codigo que utilizo....Hasta el momento solo me ha funcionado con gmail
// email stuff (change data below)
$to = "[email protected]";
$from = "xx@xxxx";
$subject = "Orden de Carga";
$message = "<p>Orden de Carga </p>";
// a random hash will be necessary to send mixed content
//$separator = md5(time());
$separator =rand(0,9)."-"
.rand(10000000000,9999999999)."-"
.rand(10000000000,9999999999)."=:"
.rand(10000,99999);
// carriage return type (we use a PHP end of line constant)
$eol = PHP_EOL;
// attachment name
$filename = "Orden de Carga.pdf";
// encode data (puts attachment in proper format)
$pdfdoc = $pdf->Output("", "S");
$attachment = chunk_split(base64_encode($pdfdoc));
// main header (multipart mandatory)
$headers = "From: ".$from.$eol;
$headers .= "MIME-Version: 1.0".$eol;
//$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol;
$headers .= "Content-Type: application/pdf; boundary=\"".$separator."\"".$eol.$eol;
//$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "This is a MIME encoded message.".$eol.$eol;
// message
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$headers .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$headers .= $message.$eol.$eol;
// attachment
$headers .= "--".$separator.$eol;
$headers .= "Content-Type: application/octet-stream; name=\"".$filename."\"".$eol;
$headers .= "Content-Transfer-Encoding: base64".$eol;
$headers .= "Content-Disposition: attachment".$eol.$eol;
$headers .= $attachment.$eol.$eol;
$headers .= "--".$separator."--";
// send message
$ok=mail($to, $subject, "", $headers);
echo $ok?" Mensaje enviado":"<h1> Mail not SEND</h1>";
Valora esta pregunta
0