Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Uso de phpmailer con una base de datos mysql

Estas en el tema de Uso de phpmailer con una base de datos mysql en el foro de PHP en Foros del Web. Hola, llevo siete años utilizando un código que he mejorado para el envio de boletines de mi portal y ahora han cambiado el spamassassin a ...
  #1 (permalink)  
Antiguo 08/01/2016, 08:51
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
De acuerdo Uso de phpmailer con una base de datos mysql

Hola, llevo siete años utilizando un código que he mejorado para el envio de boletines de mi portal y ahora han cambiado el spamassassin a nivel servidor y me devuelve todos los correos sin entregar. El problema es que la función mail() de php manda los correos sin autentificar y me los devuelve como spam, por lo que no me queda más remedio que usar la class phpmailer para autentificarlos. Lo cierto es que no la entiendo y no se usarla y necesito que alguien caritativo me ayude y me diga el código que sustituye al mio para usar citada class y que suplante la función que hace mi código actual que es este:

<?php

require_once('../phpmailer/class.phpmailer.php');

$bd_host = "localhost";
$bd_usuario = "xxxxx";
$bd_password = 'xxxxx';
$bd_base = "kwxnrefv_Boletin";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or die();
mysql_select_db($bd_base, $con);

$condicion = "Si";
$condicion = mysql_real_escape_string($condicion);
$consulta = sprintf("SELECT * FROM Entradas WHERE Boletin = '$condicion'");
$resultados = mysql_query($consulta,$con);
mysql_close($con);

while ($rowEnt = mysql_fetch_assoc($resultados)) {

$correos = ''.$rowEnt['email'].', ';
$nombre = $rowEnt['nombre'];
$Ficha = $rowEnt['Ficha'];

if ($Ficha == "No") {$FichaResultado = "<a href=\"http://www.ratondebiblioteca.es/Red Social.php\" title=\"Activar su ficha de perfil\">Active su ficha de perfil</a><br />";}
if ($Ficha == "Si") {$FichaResultado = "";}

$meses = date("F");
$ingles = array ('January' , 'February' , 'March' , 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , 'October' , 'November' , 'December');
$traduccion = array ('Enero' , 'Febrero' , 'Marzo' , 'Abril' , 'Mayo' , 'Junio' , 'Julio' , 'Agosto' , 'Septiembre' , 'Octubre' , 'Noviembre' , 'Diciembre');
$mes = str_replace ($ingles, $traduccion, $meses);

$llavepatron = "1000000000000";
$llave = rand (1, $llavepatron);
$encriptada = sha1 ($llave);

$para = "";
$tema = "Boletín de Www.ratondebiblioteca.es ($mes)";
$contenido = "<div style=\"background-color:#FFCC33;width:600px;height:880px;margin:0 auto;border-style:solid;border-width:4px;border-color:#CC0000;font-family:verdana;font-size:10px\">

<br />

<h1 style=\"margin-left:1px;text-align:center;\"><img src=\"http://www.ratondebiblioteca.es/Boletin/Cabecera.bmp\" alt=\"\" title=\"\"></h1>

<br />

<p style=\"background-color:#FFFF99;border-style:solid;border-color:#CC0000;border-width:2px;width:566px;margin-left:15px;color:#000000;font-size:12px;font-weight:bold;text-align:center\">

<br />

$nombre, le invitamos a participar en nuestros servicios:

<br />
<br />

<img src=\"http://www.ratondebiblioteca.es/Boletin/Servicios.bmp\" alt=\"Servicios\" title=\"Servicios\">

<br />
<br />

$FichaResultado

<a href=\"http://www.ratondebiblioteca.es/Ficha modelo.php\" title=\"Fichas de perfil\">Busque aquí su ficha con el nombre de la fotografía o dese de baja de este boletín temporalmente</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/HablamosEnLaRedSocial.php\" title=\"Chat\">Acceda al chat</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Compartir.php\" title=\"Compartir esta Red Social\">Añada a más gente a esta Red Social</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Noticias.php\" title=\"Anuncios, encuestas, el tiempo o la fase lunar\">Participe en los servicios de las noticias</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Librodevisitas.php\" title=\"Libro de visitas\">Deje comentarios de nuestros escritos</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Trivial.php\" title=\"Trivial\">Juegue a nuestro Trivial</a>

<br />
<br />

<img src=\"http://www.ratondebiblioteca.es/Boletin/Textos.bmp\" alt=\"Textos\" title=\"Textos\">

<br />
<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.estadepinga.es/2016/01/se-buscan-comerciales-importante.html\" title=\"04/01/2016\">Se buscan comerciales (Importante)</a>

<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/Relatos19.php#Entender\" title=\"07/01/2016\">Entender</a>

<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/Recomendamos15.php#ElPalestinoAntonioSalas\" title=\"07/01/2016\">El Palestino (Antonio Salas)</a>

<br />
<br />

Como este bolet&iacute;n est&aacute; realizado para usted, estamos trabajando en su contenido para pr&oacute;ximas ediciones, por lo tanto aceptamos <a href=\"http://ratondebiblioteca.es/Quienes somos.php\" title=\"Buzón de sugerencias\">sugerencias</a>. No se olvide de descargar nuestra Toolbar <a href=\"http://www.ratondebiblioteca.es/Barra de herramientas.php\" title=\"Barra de herramientas de Www.ratondebiblioteca.es\">aqu&iacute;</a>.

<br />
<br />

</p>

<br />

<div style=\"background-color:#FFFFCC;border-style:solid;border-color:#FF9900;border-width:2px;width:468px;height:60px;margin-left:auto;margin-right:auto;display:block;\">

<a href=\"http://www.ratondebiblioteca.es/Quienes somos.php\" title=\"Contrate aquí su publicidad\"><img src=\"http://www.ratondebiblioteca.es/Correos/Publicidad.jpg\" alt=\"Contrate aquí su publicidad\" style=\"border:none;\" /></a>

</div>

<br />

<p style=\"color:#FF0000;text-align:center;margin-left:1px;margin-right:1px;\"><a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/index.php\" title=\"www.ratondebiblioteca.es\">Www.ratondebibl ioteca.es</a> &copy; &brvbar; <a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"mailto:[email protected]\" title=\"Contacto\">Contacte aqu&iacute; con nosotros</a><br />

Recuerde agregar esta direcci&oacute;n de correo a sus contactos y cumplir con las normas de su registro.<br />
Bolet&iacute;n realizado para Yahoo, Gmail y Hotmail, si tiene alg&uacute;n problema comun&iacute;quenoslo.</p>

</div>";

$cabeceras = "DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; t=y; k=$llave; d=ratondebiblioteca.es; b=$encriptada;"."\r\n"."MIME-Version: 1.0"."\r\n"."Content-Type: text/html; charset=iso-8859-1"."\r\n"."X-MSMail-Priority: High"."\r\n"."From: [email protected]"."\r\n"."Bcc: $correos"."\r\n"."Reply-To: [email protected]";
mail ( $para , $tema , $contenido , $cabeceras );

}

?>

Gracias de antemano, ¿me podeis ayudar?
  #2 (permalink)  
Antiguo 08/01/2016, 12:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Uso de phpmailer con una base de datos mysql

¿Al menos has leído el manual de PHPMailer o te importa poco?

Porque habiendo ejemplos en dicho manual me extraña que no hayas querido intentar uno, es lo mínimo que podrías hacer.

¿O de verdad esperas que alguien haga tu trabajo de corregir el código?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/01/2016, 12:20
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: Uso de phpmailer con una base de datos mysql

Qué buena esa! Jajajaja. http://programacion.net/articulo/uso_de_la_clase_phpmailer_213 Quizá un poco de búsqueda te vendría bien. El foro no es para 'hacerle el código' a alguien, es para resolverle dudas, pero vamos, no todo el código
  #4 (permalink)  
Antiguo 08/01/2016, 13:14
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Pregunta Respuesta: Uso de phpmailer con una base de datos mysql

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Al menos has leído el manual de PHPMailer o te importa poco?

Porque habiendo ejemplos en dicho manual me extraña que no hayas querido intentar uno, es lo mínimo que podrías hacer.

¿O de verdad esperas que alguien haga tu trabajo de corregir el código?
Hola pateketrueke, si he leido el manual de phpmailer y claro que me importa pero los ejemplos que traen no me sirven para mi código porque los boletines son personalizados y en examples trae solo uno general. Si despues de leermelo supiera hacerlo no estaría pidiendo ayuda. Por favor, ¿Puedes ayudarme?.
  #5 (permalink)  
Antiguo 08/01/2016, 13:17
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Uso de phpmailer con una base de datos mysql

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Qué buena esa! Jajajaja. http://programacion.net/articulo/uso_de_la_clase_phpmailer_213 Quizá un poco de búsqueda te vendría bien. El foro no es para 'hacerle el código' a alguien, es para resolverle dudas, pero vamos, no todo el código
Es que no se por donde empezar, bueno está claro que algunas cosas si que se hacer pero he probado y no me sale. Por cierto al texto ese le faltan las imágenes, está incompleto.
  #6 (permalink)  
Antiguo 08/01/2016, 13:20
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Uso de phpmailer con una base de datos mysql

Yo creo que hay gente aqui que si se le ayudó a montar el código y si lo hicieseis ayudarías a mucha gente en internet que no sabe hacerlo porque ningún ejemplo que encontré es como este.
  #7 (permalink)  
Antiguo 09/01/2016, 08:51
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Uso de phpmailer con una base de datos mysql

Que hago mal, no funciona:

<?php

$bd_host = "localhost";
$bd_usuario = "xxxxx";
$bd_password = 'xxxxx';
$bd_base = "kwxnrefv_Boletin";
$con = mysql_connect($bd_host, $bd_usuario, $bd_password) or die();
mysql_select_db($bd_base, $con);

$condicion = "Si";
$condicion = mysql_real_escape_string($condicion);
$consulta = sprintf("SELECT * FROM Entradas WHERE Boletin = '$condicion'");
$resultados = mysql_query($consulta,$con);
mysql_close($con);

require_once('../phpmailer/class.phpmailer.php');
$correo = new PHPMailer();
$correo->IsSMTP();
$correo->Host = "localhost";
$correo->SMTPAuth = true;
$correo->SMTPKeepAlive = true;
$correo->Username = "[email protected]";
$correo->Password = "xxxxx";
$correo->SetFrom('[email protected]');
$correo->AddReplyTo('[email protected]');

while ($rowEnt = mysql_fetch_assoc($resultados)) {

$correos = ''.$rowEnt['email'].', ';
$nombre = $rowEnt['nombre'];
$Ficha = $rowEnt['Ficha'];

if ($Ficha == "No") {$FichaResultado = "<a href=\"http://www.ratondebiblioteca.es/Red Social.php\" title=\"Activar su ficha de perfil\">Active su ficha de perfil</a><br />";}
if ($Ficha == "Si") {$FichaResultado = "";}

$meses = date("F");
$ingles = array ('January' , 'February' , 'March' , 'April' , 'May' , 'June' , 'July' , 'August' , 'September' , 'October' , 'November' , 'December');
$traduccion = array ('Enero' , 'Febrero' , 'Marzo' , 'Abril' , 'Mayo' , 'Junio' , 'Julio' , 'Agosto' , 'Septiembre' , 'Octubre' , 'Noviembre' , 'Diciembre');
$mes = str_replace ($ingles, $traduccion, $meses);

$correo->Subject = "Boletín de Www.ratondebiblioteca.es ($mes)";
$contenido = "<div style=\"background-color:#FFCC33;width:600px;height:880px;margin:0 auto;border-style:solid;border-width:4px;border-color:#CC0000;font-family:verdana;font-size:10px\">

<br />

<h1 style=\"margin-left:1px;text-align:center;\"><img src=\"http://www.ratondebiblioteca.es/Boletin/Cabecera.bmp\" alt=\"\" title=\"\"></h1>

<br />

<p style=\"background-color:#FFFF99;border-style:solid;border-color:#CC0000;border-width:2px;width:566px;margin-left:15px;color:#000000;font-size:12px;font-weight:bold;text-align:center\">

<br />

$nombre, le invitamos a participar en nuestros servicios:

<br />
<br />

<img src=\"http://www.ratondebiblioteca.es/Boletin/Servicios.bmp\" alt=\"Servicios\" title=\"Servicios\">

<br />
<br />

$FichaResultado

<a href=\"http://www.ratondebiblioteca.es/Ficha modelo.php\" title=\"Fichas de perfil\">Busque aquí su ficha con el nombre de la fotografía o dese de baja de este boletín temporalmente</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/HablamosEnLaRedSocial.php\" title=\"Chat\">Acceda al chat</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Compartir.php\" title=\"Compartir esta Red Social\">Añada a más gente a esta Red Social</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Noticias.php\" title=\"Anuncios, encuestas, el tiempo o la fase lunar\">Participe en los servicios de las noticias</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Librodevisitas.php\" title=\"Libro de visitas\">Deje comentarios de nuestros escritos</a>

<br />

<a href=\"http://www.ratondebiblioteca.es/Trivial.php\" title=\"Trivial\">Juegue a nuestro Trivial</a>

<br />
<br />

<img src=\"http://www.ratondebiblioteca.es/Boletin/Textos.bmp\" alt=\"Textos\" title=\"Textos\">

<br />
<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.estadepinga.es/2016/01/se-buscan-comerciales-importante.html\" title=\"04/01/2016\">Se buscan comerciales (Importante)</a>

<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/Relatos19.php#Entender\" title=\"07/01/2016\">Entender</a>

<br />

<a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/Recomendamos15.php#ElPalestinoAntonioSalas\" title=\"07/01/2016\">El Palestino (Antonio Salas)</a>

<br />
<br />

Como este bolet&iacute;n est&aacute; realizado para usted, estamos trabajando en su contenido para pr&oacute;ximas ediciones, por lo tanto aceptamos <a href=\"http://ratondebiblioteca.es/Quienes somos.php\" title=\"Buzón de sugerencias\">sugerencias</a>. No se olvide de descargar nuestra Toolbar <a href=\"http://www.ratondebiblioteca.es/Barra de herramientas.php\" title=\"Barra de herramientas de Www.ratondebiblioteca.es\">aqu&iacute;</a>.

<br />
<br />

</p>

<br />

<div style=\"background-color:#FFFFCC;border-style:solid;border-color:#FF9900;border-width:2px;width:468px;height:60px;margin-left:auto;margin-right:auto;display:block;\">

<a href=\"http://www.ratondebiblioteca.es/Quienes somos.php\" title=\"Contrate aquí su publicidad\"><img src=\"http://www.ratondebiblioteca.es/Correos/Publicidad.jpg\" alt=\"Contrate aquí su publicidad\" style=\"border:none;\" /></a>

</div>

<br />

<p style=\"color:#FF0000;text-align:center;margin-left:1px;margin-right:1px;\"><a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"http://www.ratondebiblioteca.es/index.php\" title=\"www.ratondebiblioteca.es\">Www.ratondebibl ioteca.es</a> &copy; &brvbar; <a style=\"color:#FF0000;font-weight:bold;text-decoration:none\" href=\"mailto:[email protected]\" title=\"Contacto\">Contacte aqu&iacute; con nosotros</a><br />

Recuerde agregar esta direcci&oacute;n de correo a sus contactos y cumplir con las normas de su registro.<br />
Bolet&iacute;n realizado para Yahoo, Gmail y Hotmail, si tiene alg&uacute;n problema comun&iacute;quenoslo.</p>

</div>";
$correo->MsgHTML($contenido);
$correo->AddAddress($correos);
$correo->Send();
$correo->ClearAddresses();

}

?>
  #8 (permalink)  
Antiguo 10/01/2016, 06:05
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Uso de phpmailer con una base de datos mysql

Como recomendación del servidor he puesto $correo->Host = "mail.ratondebiblioteca.es"; pero no se ha solucionado.
  #9 (permalink)  
Antiguo 10/01/2016, 08:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Uso de phpmailer con una base de datos mysql

¿Al menos estás depurando si existe un posible error o sólo te le quedas mirando al monitor?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 11/01/2016, 06:02
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Uso de phpmailer con una base de datos mysql

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Al menos estás depurando si existe un posible error o sólo te le quedas mirando al monitor?
Si y no me da ningún error
  #11 (permalink)  
Antiguo 11/01/2016, 06:26
Avatar de Morod0  
Fecha de Ingreso: julio-2015
Ubicación: Valencia
Mensajes: 63
Antigüedad: 8 años, 9 meses
Puntos: 1
Respuesta: Uso de phpmailer con una base de datos mysql

Así es como lo tengo yo..


Código PHP:
Ver original
  1. require_once 'PHPMailer-master/class.phpmailer.php';
  2. require_once 'PHPMailer-master/class.smtp.php';
  3.  
  4. $mail = new PHPMailer(); // instancio
  5.  
  6.  
  7. if(isset($colEmpresa) && isset($colCIF)  && isset($colNIF)) {
  8.  
  9. //funcion php mailer   
  10.        
  11. //$mail->SMTPDebug = 1;    
  12.  
  13. $asunto ="ASUNTO CORREO " ;
  14.  
  15. $mail->IsSMTP(); // telling the class to use SMTP
  16.         $mail->Host = "TU HOST"; // HOST DEL SMTP
  17.         $mail->SMTPAuth = true;                  // enable SMTP authentication
  18.         $mail->Port = 587;                    // Puerto del SMTP (Lo miras en tu thunderbird mismo, a ver cual usa)
  19.         $mail->Username = "[email protected]"; // Nombre de usuario (Suele ser la propia direccion de email)
  20.         $mail->Password = "xxxx";        // Contraseña del SMTP
  21.         $mail->SetFrom('[email protected]');     
  22.     $mail->AddAddress("[email protected]"); // Aquí la dirección de correo a la que enviar el email (el cliente) usamos $email
  23.     $mail->AddAddress("[email protected]");       
  24.        $mail->Subject =  utf8_encode($asunto);
  25.  
  26.         $mail->MsgHTML($body);
  27.         $mail->CharSet = 'UTF-8';      
  28.         $mail->Send();     
  29.         header("Location: index.php");
  30.          
  31.     }

Con la documentacion de php no es dificil de entender, ya me dices

Saludos!

Etiquetas: mysql, 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 17:17.