Foros del Web » Programando para Internet » PHP »

phpmailer problema 400 direcciones

Estas en el tema de phpmailer problema 400 direcciones en el foro de PHP en Foros del Web. Hola a todos Tengo un problema, necesito enviar un email desde un formulario, que a veces va con adjunto y a veces sin el. Cuando ...
  #1 (permalink)  
Antiguo 14/01/2011, 04:11
 
Fecha de Ingreso: abril-2005
Mensajes: 75
Antigüedad: 19 años
Puntos: 2
phpmailer problema 400 direcciones

Hola a todos

Tengo un problema, necesito enviar un email desde un formulario, que a veces va con adjunto y a veces sin el. Cuando son pocas direcciones el codigo funciona perfectamente. Pero la tabla definitiva, que tiene unas 400 direcciones, da error 500 Internal... aunque los envia bien.

Necesito que me diga qué direcciones no se han enviado, por lo que hago el envio uno por uno. Creo que el error lo da al mostrar el resultado, porque los emails llegan a sus destinatarios (por lo menos a los que he preguntado aleatoriamente, y al mio que pongo siempre el ultimo).

El codigo es el siguiente:
Código HTML:
<form method="post" action="indice.php?p=<?php echo $_GET['p']?>" enctype="multipart/form-data">
	<input type="hidden" name="enviar" value="si">
	<p>Asunto: <label for="asunto" >
		<input type="text" name="asunto" size="84" /></label></p>
	<p>Adjuntar Archivo: <label for="archivo" >
			<input type="file" name="archivo" id="archivo" size="68" /></label></p>	
	<p>Contenido: </p>
		<textarea name="contenido" ><?php echo trim($contenido)?></textarea>
		<p ><input type="submit" class="boton boton_input" value="Enviar Email"></p>

</form> 
Código PHP:
if ($_POST['enviar']=='si')
{    
$asunto=$_POST['asunto'];
    
$contenido=nl2br($_POST['contenido']);
    
    require 
"includes/class.phpmailer.php";
    
$mail = new phpmailer();
    
$mail->PluginDir "includes/";
    
$mail->Mailer "smtp";
    
$mail->Host "smtp.xxxxxxxxxxx";
    
$mail->SMTPAuth true;
    
$mail->Username "xxxxxxxxxxx";
    
$mail->Password "xxxxxxxxxxx";
    
$mail->From "[email protected]";
    
$mail->FromName "";
    
$mail->Subject $asunto;
      
    
$img_url'imagenes/cabecera_galeria.jpg'
    
$mail->AddEmbeddedImage($img_url'cabecera''cabecera_galeria.jpg');
        
    
$archivo=$_FILES['archivo']['tmp_name'];
    
$archivo_name=$_FILES['archivo']['name'];
    if (
$achivo !="none"
        
$mail->AddAttachment($archivo,$archivo_name);
    
    
$mail->Body "<style>
                    body{    font:13px Arial, Helvetica, sans-serif; color:#000;    background-color:#F3ECD3; text-align:center;    }
                    td{    font:13px Arial, Helvetica, sans-serif;    }
                    h1{ font-size:15px; color:#0B3A06; border-bottom:solid 1px #F3ECD3; margin:15px }
                    .borde{    border:solid 1px #67B5B2;    }
                    .contenedor{    border:double #0B3A06;background:#fff;    }
                    hr{ width:90%; margin:auto;}
                    p{text-align:justify; margin: 5px 15px;}
                    p.nota{ font-size:11px;}
                </style>
                <table width='600' align='center' cellspacing='0' cellpadding='0' class='contenedor'>
                <tr><td align='center'><img src='cid:cabecera' /></td></tr>
                <tr><td align='center' colspan='2'>
                    <h1>$asunto</h1>
                    <p style='text-align:justify;margin:25px 35px'>$contenido</p>    </td></tr>
                </table>"
;

    
$mail->AltBody "$asunto\n\n
                    "
.strip_tags($contenido)."\n\n";
    
$mail->Timeout=120;
    
$enviados="";
    
        
$sql="SELECT * from emails_txt where email<>''";
        
$result mysql_query($sql,$link) or die(mysql_error());
        
$num mysql_num_rows($result);
        
$x=0;
        
$enviados="";
        while (
$x<$num)
        {
            
$emailmysql_result($result,$x,"email");
            
$mail->AddAddress($email);
            
$exito $mail->Send();
                    
$intentos=1
            while((!
$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
               
sleep(5);
                   
//echo $mail->ErrorInfo;
                   
$exito $mail->Send();
                   
$intentos=$intentos+1;                
            }
        
            if (
$mail->ErrorInfo=="SMTP Error: Data not accepted") {
               
$exito=true;
                }
           
           if(!
$exito)
           {    
            
//echo "<li style='text-align:left'><b>$email</b> - Error: ".$mail->ErrorInfo."</li>";    
           
}
           else
           {    
            
//echo "<li style='text-align:left'><b>$email</b> - Envio Correcto</li>";
            
$enviados.=$email.", ";
           }
           
$mail->ClearAddresses();
            
$x++;
        }
        if (
$enviados<>"")
            echo 
"<p>El mensaje con asunto <strong><i>\"$asunto\"</i></strong> ha sido enviado a 
                    las siguientes direcciones:</p>"
.$enviados;
    

Gracias de antemano

Etiquetas: direcciones, phpmailer
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 06:35.