Foros del Web » Programando para Internet » PHP »

Incrustar una imagen en con la funcion() mail

Estas en el tema de Incrustar una imagen en con la funcion() mail en el foro de PHP en Foros del Web. Hola quiero incrustar una imagen en el envio de una mail... al hacerlo me funciona bien, pero no se me incrusta la imagen. Lo hago ...
  #1 (permalink)  
Antiguo 29/01/2007, 12:58
 
Fecha de Ingreso: diciembre-2006
Mensajes: 26
Antigüedad: 17 años, 11 meses
Puntos: 0
Incrustar una imagen en con la funcion() mail

Hola quiero incrustar una imagen en el envio de una mail... al hacerlo me funciona bien, pero no se me incrusta la imagen. Lo hago con un formulario en el cual incluyo el codigo q' envia el mail a todos los mail de la lista de mail de la base de datos.. el codigo es el siguiente:

enviaMaillist.php:
<?php
include("class.phpmailer.php");
$mail = new phpmailer();
$enviar=isset($_POST['enviar']) ? true : false;
?>
<?php
/*******Conectamos y seleccionamos la base de datos ********/
$db_host=" "; //Host del mysql
$db_user=" "; //Usuario del mysql
$db_pass=" "; //Password del mysql
$db_database=" "; //db donde se creará la tabla users
$db_table=" ";

$con = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_database, $con);


$asunto = ($_POST['asunto']); //campo titulo en el form html
$From = "[email protected]"; //remitente
$boundary = "==MP_Bound_xyccr948x==";
$headers = "From:".$De."\nReply-To:".$email."\n";
$headers = "X-Mailer:PHP/".phpversion()."\n";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain/img/html; charset=ISO-8859-1;";
$headers .= "Content-Transfer-Encoding: 8bit\r\n" .
$headers .= "boundary = $boundary\"\r\n";
$headers .= "From: [email protected]\r\n";
$mensaje = ($_POST['mensaje']); //campo mensaje en el form html
$mail->AddAttachment("/var/tmp/file.tar.gz"); // attachment
$mail->AddAttachment("/tmp/image.jpg", "new.jpg");
$mail->IsHTML(true);



if (isset ($HTTP_POST_FILES["archivo"])) {
$tmp_name = $HTTP_POST_FILES["archivo"]["tmp_name"];
$name = $HTTP_POST_FILES["archivo"]["name"];
$archivo = $HTTP_POST_FILES["archivo"]["type"];
$mail -> AddAttachment ($tmp_name, $name, $archivo);
}


if (!empty($enviar)) {

$Query="SELECT email FROM mail_list ";
$resultado = mysql_query("SELECT email FROM mail_list");
while ($row=mysql_fetch_array($resultado)){
if (!empty($row['email'])){
mail($row['email'],$asunto,$mensaje,$archivo_name,"From: $From <$headers>");
}
}
}
?>

Ese es el codigo con q' envio el mail, el cual funciona pqeo solo me llaga el nombre de la imagen, no la imagen fisica...
Haber si me podrian ayudar, porfavor...
  #2 (permalink)  
Antiguo 29/01/2007, 14:48
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 8 meses
Puntos: 33
Re: Incrustar una imagen en con la funcion() mail

Tengo por entendido que no puedes anexar "archivos" a la función mail(). Esto mas bien es con phpmailer

Saludillos.
  #3 (permalink)  
Antiguo 29/01/2007, 21:59
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Incrustar una imagen en con la funcion() mail

con la clase phpmailer no necesitas utilizar la funcion mail(), no se de dondes habras sacado ese codigo pero si te fijas en los ejemplos que trae phpmailer se envían de esta forma:
Código PHP:

if(!$mail->Send()){
    
header("location: index.php?mod=contacto&error=4");
    exit();
}
// Clear all addresses and attachments for next loop
$mail->ClearAddresses();
$mail->ClearAttachments(); 
tendrías que cambiar un par de líneas en tu código

Código PHP:
if (!empty($enviar)) {

$Query="SELECT email FROM mail_list ";
$resultado mysql_query("SELECT email FROM mail_list");
while (
$row=mysql_fetch_array($resultado)){
if (!empty(
$row['email'])){
$mail->Send();
// Clear all addresses and attachments for next loop
$mail->ClearAddresses();
$mail->ClearAttachments();
}
}

espero haberte ayudado.
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 14:09.