![Stress](http://static.forosdelweb.com/fdwtheme/images/smilies/stress.png)
Este script envia correos a los registrados que obtengo de un reporte TXT y los cargo a la Web desde un formulario, todo va ok hasta que hace el envio, como comento en el script, envia al primero bien su correo, al segundo le envia 2 diseños en 1 solo correo con datos del 1ro y el que le corresponde, y asi sucesivamente.
El diseño del mail necesariamente lo tengo que poner donde se encuentra ya que debe capturar el nombre, empresa , etc de cada envio.
La estructura del txt es el siguiente:
Prueba.TXT
----------------------------------------------
Pais; Numero PIN; Empresa; Nombres; [email protected]
Pais; Numero PIN; Empresa; Nombres; [email protected]
Pais; Numero PIN; Empresa; Nombres; [email protected]
----------------------------------------------
Espero se me entienda, aqui pongo el script, se de su valiosa ayuda ya que anteriormente la he recibido.
Código PHP:
<?
$fname="Prueba.txt"; //leemos el fichero
$fp=fopen($fname,"r") or die("Error al abrir el Reporte");
$line = fgets( $fp, 4096 );
$db_link = mysql_connect("localhost","usua","pass"); //iniciamos conexion a bbdd
if ($db_link)
{
@mysql_select_db('basedatos');
}
else
{
echo "Error de conexion!";
}
$i=1;
$link=conectarse();
$asunto="Asunto mail";//Asunto del Mail
$encabezados = "MIME-Version: 1.0\n";//Cabezera
$encabezados .= "Content-type: text/html; charset=iso-8859-1\n";//Cabezera
$encabezados .= "From: Nombre <[email protected]>\n";//Cabezera
$encabezados .= "X-Sender: <[email protected]>\n";//Cabezera
$encabezados .= "X-Mailer: PHP\n";//Cabezera
$encabezados .= "X-Priority: 3\n";//Cabezera
$encabezados .= "Return-Path: Nombre <[email protected]>\n";//Cabezera
while(!feof($fp))
{
if($_POST[AC]=="ADD")//Se ejecuta si se añade registros, este valor de la condicion viene despues del formulario de carga
{
list($Country,$PIN,$Empresa,$Name,$Email) =split( ";", $line);//capturamos el contenido del TXT y separamos los valores que esten en ";"
$line = fgets( $fp, 4096 );
$result=mysql_query("INSERT INTO Tabla (Country,PIN,Empresa,Name,Email)values('$Country','$PIN','$Empresa','$Name','$Email')",$link); //Cargamos la info a la base de datos
$v=$i++;//Cuenta los envios
include "Disenodelmail.html";//Aqui el diseño del mail, este contiene datos de cada dato registrado y es enviado a su mail.
//Aqui el problema, envia al primero bien, al segundo le envia tambien del primero y asi si hay un 5to le enviara desde el 1ro al 5to
//necesariamente debe estar el mail aqui porque captura los datos de cada persona del archivo Prueba.TXT
$ACcion=mail($Email, $asunto, $mensaje, $encabezados);
}
else// Aqui ejecutamos si se trata de actualizar Registros
{
list($Country,$PIN,$PIN_S,$Empresa,$Name,$DI,$Email) =split( ";", $line);//
$line = fgets( $fp, 4096 );
$result=mysql_query("UPDATE globalcard SET Country='$Country',DI='$DI',PIN='$PIN',PIN_S='$PIN_S',Name='$Name',Empresa='$Empresa' where DI='$DI'",$link);//
$v=$i++;// Cuenta los envios
include "ModelMail1.php";
$ACcion=mail($Email, $asunto, $mensaje, $encabezados);
}
}
if($ACcion==true){echo"<li>Se enviarón los correos correctamente";}else{echo"<li><b><font color=\"#ff0000\">Error en el envio de correos!</font></b>";}
if($result==true)
{
echo"<li>Se cargarón o actualizarón <b>$v</b> nuevos registros con Exito";
}
else
{
echo"<li><b><font color=\"#ff0000\">No se cargarón o actualizarón los <b>$v</b> nuevos registros!</font></b>";
}
fclose($fp);
mysql_close($link);
?>
Saludos.
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
Libio Balbin