Foros del Web » Programando para Internet » PHP »

PHPMailer y enviar dos emails distintos uno tras otro

Estas en el tema de PHPMailer y enviar dos emails distintos uno tras otro en el foro de PHP en Foros del Web. 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, ...
  #1 (permalink)  
Antiguo 15/01/2009, 12:59
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 9 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
  #2 (permalink)  
Antiguo 15/01/2009, 13:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: PHPMailer y enviar dos emails distintos uno tras otro

Hola Charlii,

Cambia tu require en tu función por un require_once.

Saludos
  #3 (permalink)  
Antiguo 15/01/2009, 18:40
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: PHPMailer y enviar dos emails distintos uno tras otro

Gracias, GatorV, funcionó

Ya había pensado en poner el require fuera de la función, pero no lo había probado por falta de tiempo, supongo que igual habría funcionado.
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 21:44.