Foros del Web » Programando para Internet » PHP »

expertos de phpmailer - ayuda!

Estas en el tema de expertos de phpmailer - ayuda! en el foro de PHP en Foros del Web. Antes que nada, quiero presentarme. si bien hace tiempo que soy miembro de este foro, hace mucho que no participo... Estoy teniendo problemas para mandar ...
  #1 (permalink)  
Antiguo 12/11/2005, 07:31
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 5 meses
Puntos: 0
expertos de phpmailer - ayuda!

Antes que nada, quiero presentarme. si bien hace tiempo que soy miembro de este foro, hace mucho que no participo...

Estoy teniendo problemas para mandar emails con imagenes emebebidas..

estoy utilizando phpmailer.. con la siguiente instruccion para embeber una imagen:

$mail->AddEmbeddedImage($archivo1,$archivo1_id, $archivo1_name);

y luego para incluir la imagen en el html utilizo:

$mail->Body="<img src='cid:".$archivo1_id."'>";

el problema que tengo es que al recibir el mail no muestra nada....

alguien sabe que puede estar pasando??..

muchas gracias!!
  #2 (permalink)  
Antiguo 15/11/2005, 12:55
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 5 meses
Puntos: 0
Halguien sabe como hacer esto?

gracias!
  #3 (permalink)  
Antiguo 15/11/2005, 13:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pero .. de donde sale tu "$archivo1"? ..

¿Estás haciendo en ese proceso un "Upload" de un archivo (via formulario HTML con su campo file)?

Primero debes asegurarte que tu archivo lo tienes donde dices que lo tienes (ruta) a ese método.

Un saludo,

PD: ya que hace que no te pasas por el foro .. te invito a leer estas recomendaciones:
http://www.forosdelweb.com/f18/como-preguntar-foro-php-cosas-tener-cuenta-295415/
  #4 (permalink)  
Antiguo 15/11/2005, 13:56
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 5 meses
Puntos: 0
Cluster, gracias por responder.. voy a intentar mejorar un poco la consulta:

estoy teniendo problemas para enviar mails con imagenes embebidas...

Inicialmente tengo un formulario en donde cargo los datos del mail que quiero enviar:

<HTML>
<BODY>
<FORM ENCTYPE="multipart/form-data" METHOD="post" ACTION="Envio.php">
<input type="hidden" name="MAX_FILE_SIZE" value="307200">
Subject: <INPUT TYPE="text" NAME="titulo">
Direccion de destino: <INPUT TYPE="text" NAME="email">
Imagen Embebida: <INPUT TYPE="file" NAME="archivo">
ID Imagen: <INPUT TYPE="text" NAME="archivo_id">
Texto HTML: <textarea name="cuerpohtml" cols=100 rows=10></textarea>
Texto Plano: <textarea name="textoplano" cols=100 rows=10></textarea>
<INPUT TYPE="submit" VALUE="Enviar" name="enviar">
</FORM>
</BODY>
</HTML>

en "Texto HTML" cargo el HTML que quiero que tenga el mail y ahi es donde voy a poner la imagen embebida mediante: <img src='cid:imagenid'>
donde imagenid es el texto que se cargue en el campo archivo1_id


Con esta base, en el archivo envio.php utilizo la libreria phpmailer para enviar el mail:

require "class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "";
$mail->Mailer = "smtp";
$mail->Host = "localhost";
$mail->SMTPAuth = false;
$mail->Timeout=120;

$mail->AddAddress($email);
$mail->From = "[email protected]";
$mail->FromName = "Info de Origen";
$mail->Subject = $titulo;
$mail->Body = $cuerpohtml;
$mail->AltBody =$textoplano;

$mail->AddEmbeddedImage($archivo,$archivo_id, $archivo_name);

$mail->Send();


y no esta funcionando... segun la documentacion del metodo "AddEmbeddedImage" deberia funcionar...

espero que se entienda el problema, (si alguien ya lo utiliza se va a dar cuenta de lo que estoy planteando)..

saludos y gracias!
  #5 (permalink)  
Antiguo 15/11/2005, 14:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si, .. el método seguro que funciona . .pero lo que no te puede funcionar a ti en concreto es el proceso de Upload.

Haz una sencilla prueba ... indica en el método:
$mail->AddEmbeddedImage($archivo,$archivo_id, $archivo_name);

Un archivo que -tengas- en tu servidor. y lo pruebas.

Así descartas problemas de uso de PHP Mailer.

Con respecto a tu "Upload" del archivo, NO deberías usar $archivo .. sino $_FILES['archivo']['tmp_name'] .. y para el nombre definitivo del archivo: $_FILES['archivo']['name']

Si eso te funciona .. directamente no necesitarías hacer más .. pero, por seguir standars de seguridad (muchos servidores con restricciones tipo "safe mode" u "open_base_dir" .. no te dejaran acceder directamente a "$_FILES['archivo']['tmp_name'] que es donde PHP deja temporalmente y con un nombre temporal todo archivo que sube por HTTP vía PHP. En ese caso, tendrías que mover tu archivo con move_uploaded_file() hacia un directorio de tu sitio y ahí tomarlo con el método de PHP Mailer que corresponda, si luego no necesitas el archivo en tu servidor .. lo eliminas (unlink())

Revisa la documentación oficial de PHP al respecto:
http://www.php.net/manual/en/features.file-upload.php


Un saludo,
  #6 (permalink)  
Antiguo 15/11/2005, 15:56
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 5 meses
Puntos: 0
Cluster, el upload si funciona ya que el mail lo estoy recibiendo como un adjunto y puedo bajarlo sin problemas. El inconveniente es que no lo esta visualizando detro del html.

Otra prueba que hice fue con <img src='cid:$archivo'>, donde archivo es el nombre de archivo temporal de php y ahi si funciona como quiero. El problema con esto es que nunca voy a saber el nombre de archivo temporal antes de hacer el submit.

de todas maneras, voy a probar enviando el mail con una imagen que este previamente en el servidor..

muchas gracias otra vez!
  #7 (permalink)  
Antiguo 16/11/2005, 06:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El problema con esto es que nunca voy a saber el nombre de archivo temporal antes de hacer el submit.

Si, esto es cierto .. pero el nombre que tu haces referencia en el "cid:...." no es el nombre del archivo fisico que debe tomar tu método de PHP Mailer es sólo una referencia. El nombre temporal del archivo es para indicar al método en cuestión DONDE y que imagen es la que debe adjuntar.

Sólo debes preocuparte de que:
$archivo_id (el parámetro del médio de ese método) sea el mismo que te haces referencia en cid:...., es como darle un "alias".

Un saludo,
  #8 (permalink)  
Antiguo 16/11/2005, 07:04
 
Fecha de Ingreso: noviembre-2003
Mensajes: 19
Antigüedad: 20 años, 5 meses
Puntos: 0
cluster, esta claro que el valor del cid: tiene que ser igual al parametro del medio...

de esta manera me anda bien y el mail llega con la imagen embebida:

$mail->AddEmbeddedImage($archivo,$archivo, $archivo_name);

$mail->Body="<img src='cid:$archivo'>"

de esta otra (que deberia ser la correcta) no funciona:

$mail->AddEmbeddedImage($archivo,$archivo_id, $archivo_name);

$mail->Body="<img src='cid:$archivo_id'>"
  #9 (permalink)  
Antiguo 16/11/2005, 08:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues no sé que más decirte revisa si en ese scritp recibes el valore de $archivo_id.. prueba:

$mail->AddEmbeddedImage($archivo,'foto', $archivo_name);
$mail->Body="<img src='cid:foto'>";

(de todas formas insisto que debería ser con respecto a $archivo -> $archivo_tmp_name y mejor $_FILES['archivo']['tmp_name'])

Un saludo,

PD: Por qué no usas los arrays superglobales para TODA variable externa? .. Revisa esta FAQ al respecto:

http://www.forosdelweb.com/showthrea...989#post238989
  #10 (permalink)  
Antiguo 20/01/2010, 06:44
 
Fecha de Ingreso: enero-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: expertos de phpmailer - ayuda!

Hola aunque esta respuesta es de 5 años mas tarde la escribo por que yo estuve averiguando por lo mismo y me termine dando cuenta que el problema en mi caso eran las comillas ... php le agrega \ (barras invertidas) y como que no detecta bien el cid: asi que hay que ponerle las función stripslashes() de php y listo funciona

ej:

stripslashes("<img src=\"cid:logoimg\" />");

Saludossss











Cita:
Iniciado por snnifer Ver Mensaje
Antes que nada, quiero presentarme. si bien hace tiempo que soy miembro de este foro, hace mucho que no participo...

Estoy teniendo problemas para mandar emails con imagenes emebebidas..

estoy utilizando phpmailer.. con la siguiente instruccion para embeber una imagen:

$mail->AddEmbeddedImage($archivo1,$archivo1_id, $archivo1_name);

y luego para incluir la imagen en el html utilizo:

$mail->Body="<img src='cid:".$archivo1_id."'>";

el problema que tengo es que al recibir el mail no muestra nada....

alguien sabe que puede estar pasando??..

muchas gracias!!

Última edición por fmsmi; 20/01/2010 a las 09:40
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:53.