Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/08/2013, 09:36
Avatar de Nemutagk
Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 7 meses
Puntos: 406
Respuesta: imagenes embebidas tinyMCE al enviar correo phpmailer

Lo mejor que puedes hacer es generar la ruta completa para que al abrir el correo se descargue del servidor ya que es mucho mas facil, en todo caso si aún quieres agregar la imagen como archivos adjuntos debes "parsear" el contenido del email para sustraer el nombre de la imagen para poder agregarlo como archivo adjunto, para eso puedes usar expresiones regulares, aparte de eso debes cambiar la ruta de la imagen para que el navegador/cliente sepa que se refiere a una imagen dentro del email...

Código PHP:
Ver original
  1. $html = <<<HTML
  2. <!doctype html>
  3. <html lang="en">
  4. <head>
  5.     <meta charset="UTF-8">
  6.     <title>Document</title>
  7. </head>
  8. <body>
  9.     <p><img src="/elements/files/imagen1.jpg" alt=""></p>
  10.     <p><img src="/elements/files/imagen2.jpg" alt=""></p>
  11.     <p><img src="/elements/files/imagen3.jpg" alt=""></p>
  12.     <p><img src="/elements/files/imagen4.jpg" alt=""></p>
  13.     <p><img src="/elements/files/imagen5.jpg" alt=""></p>
  14. </body>
  15. </html>
  16. HTML;
  17.  
  18. preg_match_all('/\/elements\/files\/(([a-zA-Z0-9_.-]+).(png|jpg|jpeg))/',$html,$imagenes);
  19.  
  20. $mail = new PHPMailer();
  21.  
  22. foreach($imagenes[0] as $img) {
  23.     if (file_exists($img)) {
  24.         /*
  25.          * aqui asegurate que el tipo de imagen corresponda al de la imagen
  26.          * ya que si no fallará, si es png debe ser imagen/png, si es bmp image/bmp o image/x-bmp
  27.          */
  28.         $tipo = 'image/jpeg';
  29.         $mail->AddEmbeddedImage($img,'cid','name','base64',$tipo);
  30.     }
  31. }

Por ultimo, también debes cambiar el HTML final, cambiando la ruta de la imagen por el CID de la imagen, OJO, MUY IMPORTANTE, cada imagen debe tener un CID único!
Código HTML:
Ver original
  1. <!doctype html>
  2. <html lang="en">
  3.     <meta charset="UTF-8">
  4.     <title>Document</title>
  5. </head>
  6.     <p><img src="cid:imagen1" alt=""></p>
  7.     <p><img src="cid:imagen2" alt=""></p>
  8.     <p><img src="cid:imagen3" alt=""></p>
  9.     <p><img src="cid:imagen4" alt=""></p>
  10.     <p><img src="cid:imagen5" alt=""></p>
  11. </body>
  12. </html>
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)