Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2009, 12:59
Charlii
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 2
Pregunta PHPMailer y enviar dos emails distintos uno tras otro

Buenas, estoy usando PHPMailer para mandar emails por SMTP pues mi servidor sólo permite envío de emails autenticados.

Tengo el siguiente código:

Código:
function enviar_email($destino, $asunto, $cuerpo, $origen_nombre, $origen_email, $final_ok, $final_error){
require "class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "";
$mail->Mailer = "smtp";
$mail->Host = "localhost";
$mail->SMTPAuth = true;
$mail->Username = "xxx";
$mail->Password = "xxx";
$mail->From = $origen_email;
$mail->FromName = $origen_nombre;
$mail->Timeout=30;
$mail->AddAddress($destino);
$mail->Subject = $asunto;
$mail->Body = $cuerpo;
$mail->AltBody = $cuerpo;
$exito = $mail->Send();
$intentos=1; 
while ((!$exito) && ($intentos < 5)) {
	sleep(5);
     	$exito = $mail->Send();
     	$intentos=$intentos+1;	
   }
   if(!$exito)
   {
	echo $final_error;
   }
   else
   {
	echo $final_ok;
   }
}
Y cuando llamo la función enviar_email de esta manera (parámetros previamente asignados):

Código:
enviar_email($email, $asunto, $cuerpo, $origen_nombre, $origen_email, $final_ok, $final_error);
Funciona todo OK.

EL PROBLEMA... es que si hago esto (parámetros de la primera y segunda función diferentes):

Código:
enviar_email($email, $asunto, $cuerpo, $origen_nombre, $origen_email, $final_ok, $final_error);

enviar_email($email, $asunto, $cuerpo, $origen_nombre, $origen_email, $final_ok, $final_error);
Sólo se le manda el un email a la primera dirección de email (a la de los parámetros de la primera función)... y parece que ahí se detiene el código.

¿Qué estará pasando?

ACLARO:
  • El valor de los parámetros $email, $asunto, $cuerpo, $origen_nombre, $origen_email, $final_ok, $final_error SON CAMBIADOS después de llamar la primera vez a la función (no creerán estoy mandando dos emails a una sola dirección)
  • No estoy queriendo mandar el mismo mail a dos direcciones diferentes, sé que para eso está lo de $mail->AddAddress($destino);

Creo que el problema está en alguna parte de la función enviar_email... ese código lo encontré en algún lado, yo lo adapté un poco.

¡Espero puedan ayudarme! no soy experto en PHP ni tampoco en programación, pues de hecho no manejo punteros ni objetos, por lo que no entiendo mucho de la función enviar_email.

Última edición por Charlii; 15/01/2009 a las 13:09