2011-05-23 29 views
12

Estoy usando phphmailer y he adjuntado una imagen, muestra solo la imagen como un ícono en lugar de la imagen en sí, aquí está mi código podría ayudarme.¿Cómo puedo adjuntar una imagen usando Phpmailer?

$mail->AddEmbeddedImage('2.jpg', '2img', '2.jpg'); 
$mail->Subject = "Order Form: Contact form submitted"; 
$mail->Body  = $body . 'img src="../../photo/2img" ; 

Nota: He caído etiqueta HTML img acaben como me sale error enviar este P.

Respuesta

19

por PHPMailer Manual, se utiliza el método sould AddEmbeddedImage

 
$mail->AddEmbeddedImage(filename, cid, name); 
By using this function with this example's value above, results in this code: 
$mail->AddEmbeddedImage('my-photo.jpg', 'my-photo', 'my-photo.jpg '); 

así:

$mail->AddEmbeddedImage("rocks.png", "my-attach", "rocks.png"); 
$mail->Body = 'Embedded Image: <img alt="PHPMailer" src="cid:my-attach"> Here is an image!'; 

así que cid:my-attach será reemplazado con el fuente en línea de la imagen que está dentro del cuerpo del correo electrónico

+0

Hola, esto funciona muy bien para incrustar en el correo electrónico, gracias. Pero al hacer esto, la imagen no se muestra como un archivo adjunto normal en la parte inferior del correo. ¿Hay alguna forma de insertar la imagen en el cuerpo del correo y mostrarla como un archivo adjunto común en la parte inferior? Si la imagen no se carga, el receptor puede encontrarla en la parte inferior. Gracias – Jakob

+1

que dependerá completamente del cliente de correo electrónico. Al final, esa imagen es solo un archivo adjunto. –

+0

¿eh, está bien? Muchas gracias – Jakob

-1

El uso de la función AddEmbeddedImage() funciona bien al mostrar la imagen incrustada en los correos electrónicos basados ​​en web. Sin embargo, Yahoo siempre lo agrega como un archivo adjunto también. Para superar este problema, puede ignorar de manera segura AddEmbeddedImage() y vincularse a la ruta completa de la imagen en su servidor y PHPMailer tiene la capacidad de convertirlo a CID y se mostrará correctamente como imagen incrustada y Yahoo no lo agregará como un archivo adjunto más.

En el cuerpo HTML del mensaje, añadir que, como de costumbre:

<img src="http://PATH-TO-IMAGE" alt='THIS IS THE IMAGE" />

+1

Jus para ser claro, para cualquiera que esté leyendo esto, phpmailer no está convirtiendo esto en cid o en cualquier otro tipo de imagen incrustada. no está analizando en absoluto, si ve la imagen en el otro lado, es juste debido a la etiqueta html img básica que le permite especificar una url completa a la imagen. Pero tenga en cuenta que como esta técnica se usa para rastrear la entrega (beacon), a algunos programas de spam no les gusta esto, y la mayoría de las aplicaciones de correo no cargarán imágenes remotas (cómo los llama) automáticamente, el usuario tendrá que presionar tipo de enlace como 'mostrar imágenes' –

Cuestiones relacionadas