Foros del Web » Programando para Internet » PHP »

Problema phpmailer Ubuntu

Estas en el tema de Problema phpmailer Ubuntu en el foro de PHP en Foros del Web. Con mi servidor local que está con windows7, WampServer, la clase phpmailer a través del SMTP de Gmail me va genial. Ver artículo: http://www.forosdelweb.com/f18/error...ailer-1119720/ Mi ...
  #1 (permalink)  
Antiguo 25/02/2015, 02:05
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Problema phpmailer Ubuntu

Con mi servidor local que está con windows7, WampServer, la clase phpmailer a través del SMTP de Gmail me va genial. Ver artículo:
http://www.forosdelweb.com/f18/error...ailer-1119720/

Mi problema es que cuando intento usarlo en mi servidor real que está con Ubuntu y LAMP Server no me va.

Al darle a enviar al formulario e ir a send_mail_gmail.php, no me envia el formulario y en el archivo anterior, se me queda la página colgada a mitad ??.

Código PHP:
<?php
// Adquirimos las variables del formulario y mas
$dia=date("d-m-Y");
$hora=date("H:i:s");
$nombre $_POST["nombre2"];
$email $_POST["email2"];
$asunto $_POST["asunto2"];
$mensaje $_POST["mensaje2"];
$body "
 El mensaje se a enviado el dia: <strong>$dia</strong> a las: <strong>$hora</strong> horas <br><br> 
---------------------------------------------------------------------------------------------------------<br><br>
 <strong>Nombre:</strong> $nombre <br><br>
 <strong>Email:</strong>  <a href='mailto:$email'>$email</a> <br><br>
 <strong>Asunto:</strong> $asunto <br><br>
 <strong>MENSAJE:</strong> <br><br>$mensaje <br><br>
 --------------------------------------------------------------------------------------------------------<br><br>
 "
;
/*--------------------------------------------------------------------------------------------*/
require_once('includes/PHPMailer/class.phpmailer.php'); 
include(
'includes/PHPMailer/class.smtp.php');
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From $email;
$mail->FromName $nombre;
$mail->addReplyTo($email$nombre);
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$password 'mipassword';
$port 587;
$secure 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->isSMTP();
$mail->Host $host;
$mail->SMTPAuth true;
$mail->Username $username;
$mail->Password $password;
$mail->Port $port;
$mail->SMTPSecure $secure;
/*------------------------------------------------------------------------------------------*/
$mail->addAddress('[email protected]''Armando Rodriguez');
/*------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet 'utf-8';
$mail->setWordWrap 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject 'ENVÍO FORMULARIO DE CONTACTO DE NOVA IRFORMÁTICA';
$mail->Body $body;
//$mail->MsgHTML($body);
$mail->AltBody $body;
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
                <div class="message_box_2"> 
                  <div align="center"><strong>¡¡ EL FORMULARIO DE CONTACTO HA SIDO ENVIADO CORRECTAMENTE !!</strong>
                  <br><br>
                  Gracias por haber contactado con nosotros, le responderemos  a la menor brevedad posible.
                  <br>
                  <a href="contacto.php" title="Pincha aquí para volver a la página anterior"><strong>
                  <br>
                  VOLVER A LA PÁGINA ANTERIOR</strong></a>
                  </div>
                </div>
<?php
} else {
?>
                <div class="message_box_3"> 
                  <div align="center"><strong>¡¡ EL FORMULARIO DE CONTACTO NO HA SIDO ENVIADO CORRECTAMENTE !!</strong>
                  <br><br>
                    <?php echo "Mailer Error: " $mail->ErrorInfo;?><br>
                    <a href="contacto.php" title="Pincha aquí para volver a la página anterior"><strong>
                    <br>
                    VOLVER A LA PÁGINA ANTERIOR</strong></a>
                  </div>
                </div>
<?php
}
?>
Toda esta parte no me la hace:
Código PHP:
<?php
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
                <div class="message_box_2"> 
                   <div align="center"><strong>¡¡ EL FORMULARIO  DE CONTACTO HA SIDO ENVIADO CORRECTAMENTE !!</strong>
                  <br><br>
                  Gracias por haber contactado con nosotros, le responderemos  a la menor brevedad posible.
                  <br>
                  <a href="contacto.php" title="Pincha aquí para volver a la página anterior"><strong>
                  <br>
                  VOLVER A LA PÁGINA ANTERIOR</strong></a>
                  </div>
                </div>
<?php
} else {
?>
                <div class="message_box_3"> 
                   <div align="center"><strong>¡¡ EL FORMULARIO DE CONTACTO NO  HA SIDO ENVIADO CORRECTAMENTE !!</strong>
                  <br><br>
                    <?php echo "Mailer Error: " $mail->ErrorInfo;?><br>
                    <a href="contacto.php" title="Pincha aquí para volver a la página anterior"><strong>
                    <br>
                    VOLVER A LA PÁGINA ANTERIOR</strong></a>
                  </div>
                </div>
<?php
}
?>
Como sabeis o vereis en el post que respondi, em windows y con XAMP, WampServer hay que habilitar la extension de php php_openssl en el php.ini.
Habrá que hacer algo igual en Ubuntu??
Alguna sugerencia ??

Un saludo: Armando
  #2 (permalink)  
Antiguo 25/02/2015, 03:10
 
Fecha de Ingreso: diciembre-2012
Mensajes: 75
Antigüedad: 11 años, 4 meses
Puntos: 2
Respuesta: Problema phpmailer Ubuntu

La pagina en blanco es raro que se quede, coloca en los archivos que usas al principio un

Código PHP:
Ver original
  1. ini_set("display_errors",1);

Y nos dices que error te da
  #3 (permalink)  
Antiguo 25/02/2015, 10:43
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Problema phpmailer Ubuntu

Lo hare cuando tenga un poco de tiempo a ver y te cuento, pero la pagina no se queda en blanco. Aparece la web pero en el div donde está phpmaile no aparece el mensaje de se envio correctamente.
De todas forma en mi server con ubuntu he desechado phpmailer por estas circunstancias.


En ubuntu es mejor seguir trabajando con la función mail() de php pero para que funcione con un SMTP externo como gmail es necesario instalar sSMTP y vuala fuera problemas.


Este server lo uso para mostrar las webs a los cliente, si lo hiciera con phpmailer, despues, a la hora de subir la web a un hosting definitivo del cliente deberé cambiar todo lo de phphmailer a mail(), que coñazo.


Lo dicho, muchas gracias por tu respuesta y ya te cuento.


Saludos Manyblue
  #4 (permalink)  
Antiguo 25/02/2015, 10:57
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Problema phpmailer Ubuntu

Cita:
Iniciado por manyblue Ver Mensaje


Este server lo uso para mostrar las webs a los cliente, si lo hiciera con phpmailer, despues, a la hora de subir la web a un hosting definitivo del cliente deberé cambiar todo lo de phphmailer a mail(), que coñazo.
Que caso tiene utilizar PHPMailer si tienes que hacer esto.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 06/03/2015, 02:35
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Problema phpmailer Ubuntu

Pues practicar, no te parece ??
el
ini_set("display_errors",1);
No me da error ninguno
Como te dije me aparece la pagina del envio con el div donde esta esto a mitad no entero el reto de la pagina aparece perfectamente, es decir, no me aparece se envio correctamente.
Hare capturas para que las veas
Saludos y gracias: Manyblue

Última edición por manyblue; 06/03/2015 a las 02:42
  #6 (permalink)  
Antiguo 06/03/2015, 03:33
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Problema phpmailer Ubuntu

Vamos a ver si vuestro foro me permite introducir todos los códigos.

1) Tengo un formulario de contacto que se envía con phpmailer en local perfectamente.

Código del envio:
Código PHP:
<?php
// Adquirimos las variables del formulario y mas
$dia=date("d-m-Y");
$hora=date("H:i:s");
$nombre $_POST["nombre2"];
$email $_POST["email2"];
$asunto $_POST["asunto2"];
$mensaje $_POST["mensaje2"];
$body "
 El mensaje se a enviado el dia: <strong>$dia</strong> a las: <strong>$hora</strong> horas <br><br> 
---------------------------------------------------------------------------------------------------------<br><br>
 <strong>Nombre:</strong> $nombre <br><br>
 <strong>Email:</strong>  <a href='mailto:$email'>$email</a> <br><br>
 <strong>Asunto:</strong> $asunto <br><br>
 <strong>MENSAJE:</strong> <br><br>$mensaje <br><br>
 --------------------------------------------------------------------------------------------------------<br><br>
 "
;
/*--------------------------------------------------------------------------------------------*/
require_once('includes/PHPMailer/class.phpmailer.php'); 
include(
'includes/PHPMailer/class.smtp.php');
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From $email;
$mail->FromName $nombre;
$mail->addReplyTo($email$nombre);
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$password 'mipass';
$port 587;
$secure 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->isSMTP();
$mail->Host $host;
$mail->SMTPAuth true;
$mail->Username $username;
$mail->Password $password;
$mail->Port $port;
$mail->SMTPSecure $secure;
/*------------------------------------------------------------------------------------------*/
$mail->addAddress('[email protected]''Nombredestino');
/*------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet 'utf-8';
$mail->setWordWrap 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject 'ENVÍO FORMULARIO DE CONTACTO';
$mail->Body $body;
//$mail->MsgHTML($body);
$mail->AltBody $body;
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
                <div class="message_box_2"> 
                  <div align="center"><strong>¡¡ EL FORMULARIO DE CONTACTO HA SIDO ENVIADO CORRECTAMENTE !!</strong>
                  <br><br>
                  Gracias por haber contactado con nosotros, le responderemos  a la menor brevedad posible.
                  <br>
                  <a href="contacto.php" title="Pincha aquí para volver a la página anterior"><strong>
                  <br>
                  VOLVER A LA PÁGINA ANTERIOR</strong></a>
                  </div>
                </div>
<?php
} else {
?>
Al enviarlo aparece la confirmación:
http://www.mbmultiservicios.com/imagenes/1.png
Todo correcto
  #7 (permalink)  
Antiguo 06/03/2015, 03:42
Avatar de manyblue  
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años
Puntos: 10
Respuesta: Problema phpmailer Ubuntu

2) Tengo un sistema de envio de boletines a suscriptores, boletines solo se envía uno a a todos los suscriptores de un idioma determinado.

Formulario de selección y envio
http://www.mbmultiservicios.com/imagenes/2.png
Este formulario va a una pagina de envío send_mail_boletines.php cuyo código ahora mismo es este:

Código PHP:
<?php
ini_set
("display_errors",1);
// Viene del formulario - Idioma Boletin: 1 Español, 2 English, 3 Deutsch
$varIdiomaBoletin "0";
if (isset(
$_GET["idioma"])) {
  
$varIdiomaBoletin $_GET["idioma"];
}
$varNombreBoletin "0";
if (isset(
$_GET["nombre_boletin"])) {
  
$varNombreBoletin $_GET["nombre_boletin"];
}
// Viene del formulario - Idioma Suscripcion: 1 Español, 2 English, 3 Deutsch
$varIdiomaSuscripcion "0";
if (isset(
$_GET["idioma_suscripcion"])) {
  
$varIdiomaSuscripcion $_GET["idioma_suscripcion"];
}
// Viene del formulario - $varEnviarSuscripcion = 1 - Enviar
$varEnviarSuscripcion "0";
if (isset(
$_GET["enviar_suscripcion"])) {
  
$varEnviarSuscripcion $_GET["enviar_suscripcion"];
}

echo 
$varIdiomaBoletin."<br />";
echo 
$varNombreBoletin."<br />";
echo 
$varIdiomaSuscripcion."<br />";
echo 
$varEnviarSuscripcion;

mysql_select_db($database_conex_db_teldetv$conex_db_teldetv);
$query_ConsultaBoletines "SELECT * FROM tbl_boletin WHERE tbl_boletin.idioma = '%".$varIdiomaBoletin."%' AND tbl_boletin.idioma = '%".$varNombreBoletin."%'";
$ConsultaBoletines mysql_query($query_ConsultaBoletines$conex_db_teldetv) or die(mysql_error());
$row_ConsultaBoletines mysql_fetch_assoc($ConsultaBoletines);
$totalRows_ConsultaBoletines mysql_num_rows($ConsultaBoletines);

mysql_select_db($database_conex_db_teldetv$conex_db_teldetv);
$query_ConsultaSuscripciones "SELECT * FROM tbl_suscripciones WHERE tbl_suscripciones.idioma_suscripcion = '%".$varIdiomaSuscripcion."%' AND tbl_suscripciones.enviar_suscripcion = '%".$varEnviarSuscripcion."%'";
$ConsultaSuscripciones mysql_query($query_ConsultaSuscripciones$conex_db_teldetv) or die(mysql_error());
$row_ConsultaSuscripciones mysql_fetch_assoc($ConsultaSuscripciones);
$totalRows_ConsultaSuscripciones mysql_num_rows($ConsultaSuscripciones);

while (
$array_ConsultaSuscripciones mysql_fetch_array($ConsultaSuscripciones))
{
// Adquirimos las variables
$dia=date("d-m-Y");
$hora=date("H:i:s");
$nombre $array_ConsultaSuscripciones["nombre_suscripcion"];
$email $array_ConsultaSuscripciones["email_suscripcion"];
$asunto 'BOLETIN NOVA INFORMÁTICA';
// Idioma Boletin: 1 Español, 2 English, 3 Deutsch
if ($row_ConsultaBoletines['idioma'] = 1):
$body "Estimado: $nombre, este boletín ha sido enviado el: $dia a las: $hora horas.<br /><br />".$row_ConsultaBoletines['codigo_boletin'];
elseif (
$row_ConsultaBoletines['idioma'] = 2):
$body "Dear: $nombre, this newsletter has been sent: $dia at: $hora hours.<br /><br />".$row_ConsultaBoletines['codigo_boletin_in'];
elseif (
$row_ConsultaBoletines['idioma'] = 3):
$body "Liebe: $nombre, dieser Newsletter wurde gesendet: $dia um: $hora Uhr.<br /><br />".$row_ConsultaBoletines['codigo_boletin_al'];
endif;
/*--------------------------------------------------------------------------------------------*/
require_once('../includes/PHPMailer/class.phpmailer.php'); 
include(
'../includes/PHPMailer/class.smtp.php');
/*------------------------------------------------------------------------------------------*/
$mail = new PHPMailer();
$mail->setLanguage('es');
/*------------------------------------------------------------------------------------------*/
$mail->From "[email protected]";
$mail->FromName "Nombre";
$mail->addReplyTo('[email protected]''Nombre');
/*------------------------------------------------------------------------------------------*/
$host 'smtp.gmail.com';
$username '[email protected]';
$password 'mipass';
$port 587;
$secure 'tls';
/*------------------------------------------------------------------------------------------*/
$mail->isSMTP();
$mail->Host $host;
$mail->SMTPAuth true;
$mail->Username $username;
$mail->Password $password;
$mail->Port $port;
$mail->SMTPSecure $secure;
/*------------------------------------------------------------------------------------------*/
$mail->addAddress($email$nombre);
/*------------------------------------------------------------------------------------------*/
$mail->isHTML(true);
$mail->CharSet 'utf-8';
$mail->setWordWrap 70;
/*------------------------------------------------------------------------------------------*/
$mail->Subject $asunto;
$mail->Body $body;
//$mail->MsgHTML($body);
$mail->AltBody $body;
/*------------------------------------------------------------------------------------------*/
if($mail->Send()) {
?> 
              <div class="message success">
                <h5><strong>¡¡ LOS BOLETINES SE HAN  ENVIADO CORRECTAMENTE !!</strong></h5>
              </div>
<?php
} else {
?>
              <div class="message error">
                <h5><strong>¡¡ LOS BOLETINES NO SE HAN  ENVIADO CORRECTAMENTE !!</strong></h5>
              </div>
<?php
}
}
?>
Al enviar los correos sale esto:
http://www.mbmultiservicios.com/imagenes/3.png
Pero deberia mostar:
http://www.mbmultiservicios.com/imagenes/4.png
Además no se envian los boletine.
Ahora mismo solo tengo en DB dos suscriptores por lo que no debería haber problemas con gmail.

No se si me he explicado bien.
gracias de antemano: manyblue

Etiquetas: formulario, html, phpmailer, ubuntu, variable
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:10.