Foros del Web » Programando para Internet » PHP »

Config. phpmailer para email Google Apps Edición Estándar

Estas en el tema de Config. phpmailer para email Google Apps Edición Estándar en el foro de PHP en Foros del Web. Hola, les cuento que en el hosting que tengo solicité varias casillas de correo. Recien me entero que estan en google, es decir, me abrieron ...
  #1 (permalink)  
Antiguo 23/02/2009, 21:05
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Pregunta Config. phpmailer para email Google Apps Edición Estándar

Hola, les cuento que en el hosting que tengo solicité varias casillas de correo. Recien me entero que estan en google, es decir, me abrieron una cuenta en google con mi dominio.com. La cuenta es del tipo Google Apps Edición estándar.
Desde un script que hice en php 5 estpy intentando enviar un correo electrónico, para lo cual uso phpmailer.
Pero no doy con la configuración del SMTP. Es decir, he probado ya varias cosas y nada me funciona.
Puede ser que no me funcione porque la cuenta de correo es de google..?
Que debo configurar en mi script, además del código que les indico aquí abajo: ?

<?php
error_reporting(E_STRICT);
date_default_timezone_set('America/Sao_Paulo');

include("class.phpmailer.php");
//include("class.smtp.php");

$mail = new PHPMailer();
$body = $mail->getFile('contents.html');
$body = eregi_replace("[\]",'',$body);

$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;

$mail->Username = "usuarioARROBAmidominio.com";
$mail->Password = "mipassword"; $mail->AddReplyTo("usuarioARROBAmidominio.com","nombre") ;

$mail->From = "usuarioARROBAmidominio.com";
$mail->FromName = "maria";

$mail->Subject = "PHPMailer Test Subject via gmail";

$mail->Body = "Hi,<br>This is the HTML BODY<br>";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!";
$mail->WordWrap = 50;
$mail->MsgHTML($body);

$mail->AddAddress("usuariodestinoARROBAdominio.com", "Nombre");
//$mail->AddAttachment("images/phpmailer.gif"); // attachment

$mail->IsHTML(true);

if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; }
else { echo "Message sent!"; }
?>

Ya he probado con todo y con nada me funciona. ahora le último error que este código me tira es:

Mailer Error: SMTP Error: Could not connect to SMTP host.PHP Strict Standards: Implicit cloning object of class 'PHPMailer' because of 'zend.ze1_compatibility_mode' in C:\Inetpub\........\phpmailer\mail5.php on line 11 PHP Strict Standards: Implicit cloning object of class 'SMTP' because of 'zend.ze1_compatibility_mode' in C:\Inetpub\..........\phpmailer\class.phpmailer.ph p on line 588

Además estuve mirando en la administración de este tipo de cuenta de google y habla sobre los MX.. como que el SMTP debe apuntar a los MX..?? No entiendo nada de eso.. es un poco complejo para alguien novato..
Yo lo que quiero saber: que hay que configurar en el script.? Es incorrecto el smtp, el puerto..? O es UN PROBLEMA DE MI PROVEEDOR DE HOSTING..?

Si alguien sabe de estas cuestiones.. desde ya gracias por responder.. seguro me aclarara el panorama: como enviar un mail con phpmailer y una casilla del tipo Google Apps Edición estándar.
Maria.
  #2 (permalink)  
Antiguo 24/02/2009, 03:48
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Hola.

He visto tu código y según veo, no has incluido el directorio donde se encuentra la clase class.smtp.php.

Debes crear un objeto indicando la ruta donde está ese fichero.

$mail->PluginDir="aqui tu directorio donde está el fichero class.smtp.php";


Crear esto otro para indicarle el tipo de servidor que vas a utilizar

$mail->Mailer="smtp"; //esto sería en tu caso.

Prueba esas dos opciones y nos comentas si te ha funcionado.

Un saludo


EDITO:

Deberías poner también un Timeout superior a 30 (que es el valor por defecto). Me pasó que al tenerlo en 30, siempre me daba error, así que lo aumente a 50. Y el número de intentos deberías ponerlo por ejemplo a 5, con lo que le estas diciendo que lo reintente enviar 5 veces por si alguna da error.

Esto sería asi:

$mail->Timeout=50;


$correcto = $mail->Send();

$intentos=1;
while ((!$correcto) && ($intentos < 5)) {
sleep(5);
$correcto = $mail->Send();
$intentos++;

}

//Aquí comprobamos si se ha enviado o no el correo
if(!$correcto)
{
echo "Problemas enviando correo electrónico";
echo "<br/>".$mail->ErrorInfo; //Esto te muestra el error que ha producido al intentar enviar el correo
}
else
{
echo "Mensaje enviado correctamente";
}

Última edición por rafaconpu; 24/02/2009 a las 03:54
  #3 (permalink)  
Antiguo 24/02/2009, 12:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Muchas gracias por tu respeusta. Ahora mismo voy a probar lo que dices... espero q funcione porque ya he probado de todo.. y nada va.. Luego te comento.
  #4 (permalink)  
Antiguo 24/02/2009, 13:16
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Hola, mira he probado agregando con lo que me has dicho pero sigue sin funcionar. _Sera que yo debo cambiar algo mas o es el servidor que tengo contratado el que debe configurar algo.. Yo a este ejemplo lo baje del foro, lo adapte con ideas que tome de otros ejemplos..
Lo que deseo saber, que no encuentro en este foro es que SMTP usa una cuenta de google, del tipo APPs Edicion Estandar. Porque ahora con elagregado queme dijiste me da que no puede conectar con el smtp:
Aqui te dejo el codigo con elagregado y el error.
Si puedes verlo, o si a alguien le paso lo mismo que a mi.. agradecida estoy de comentarios constructivos..
Te comento que las clases class.phpmailer.php y class.smtp.php, junto con este archivo enviarmail.php, estan en el mismo directorio q se llama "phpmailer", por eso no puse lo del PluginDir, a esto lo veras comentado por encontrarse todo en el mismo directorio.

<?php
require('class.phpmailer.php');
require('class.smtp.php'); // optional, gets called from within class.phpmailer.php if not already loaded
$mail = new PHPMailer();
//$mail->PluginDir="phpmailer/"; --------------------> lo quité
//$mail->IsSMTP(); --------------------------------------> lo quité
$mail->Mailer = "smtp"; --------------------------------> lo agregué
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port for the GMAIL server

$mail->Username = "micuentadeusuarioARROBAmidominio.com"; // CUENTA DE GOOGLE APPS EDICION ESTANDAR
$mail->Password = "mipassword"; // Password de la cuenta de correo

$mail->AddReplyTo($direccion," ");

$mail->From = "micuentadeusuarioARROBAmidominio.com";
$mail->FromName = "Maria";

$mail->Subject = "PHPMailer Test Subject via gmail";

$body = $mail->getFile('contents.html');
$body = eregi_replace("[\]",'',$body);
$mail->Body = "Hi,<br>This is the HTML BODY<br>"; //HTML Body
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->WordWrap = 50; // set word wrap

$mail->MsgHTML($body);

$mail->AddAddress($direccion, " ");

$mail->IsHTML(true); // send as HTML

$mail->Timeout=60;

$correcto = $mail->Send();

$intentos=1;
while ((!$correcto) && ($intentos < 5)) {
sleep(5);
$correcto = $mail->Send();
$intentos++;
}

//Aquí comprobamos si se ha enviado o no el correo
if(!$correcto)
{
echo "Problemas enviando correo electrónico";
echo "<br/>".$mail->ErrorInfo; //Esto te muestra el error que ha producido al intentar enviar el correo }
else { echo "Mensaje enviado correctamente"; }
?>

El error que me tira luego de hacer tus agregados es:

Problemas enviando correo electrónico

SMTP Error: Could not connect to SMTP host.PHP Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\.....\.........com\phpmailer\class.smtp.php on line 122 PHP Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\Inetpub\observanto.com.ar\phpmailer\class.smtp. php on line 122..BUENO a esto lo repite por la cantidad de intentos que me has hecho agregar.
Si sabes que pueda ser, espero tu respuesta, ya que han pasado varios dias de intento y no puedo solucionar este problema... Debo si o si enviar entregar este script para enviar email.. Gracias..Maria.
  #5 (permalink)  
Antiguo 24/02/2009, 14:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

El error te indica que no compilaste tu instalación de PHP con SSL, necesitas compilarlo junto con las librerías de SSL para poder comunicarte por SSL al SMTP de Gmail.

Saludos
  #6 (permalink)  
Antiguo 24/02/2009, 14:30
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

mrmaria:

Pareciera que para usar la clase phpmailer con google.com
es necesario activar la extension php_openssl.dll.

Prueba activandola en el php.ini quitandole el ;
Y buscala en el directorio /ext y copiala donde
esta el php.ini y si utilizas windows debes
hacer lo mismo en el php.ini que esta en
el windows directorio correspondiente.

Saludos
Franco
  #7 (permalink)  
Antiguo 24/02/2009, 15:02
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Ante todo gracias por la respuesta.
Bueno, fui al php.ini que tengo en mi disco local directorio WINDOWS y ahi quite el ";" a la extension "extension=php_openssl.dll", como me recomendaron. Pero me sigue dando el mismo ERROR:

Mailer Error: SMTP Error: Could not connect to SMTP host.PHP Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\.....\.........\phpmailer\class.smtp.php on line 122

Bueno, no se si sirva, a modo de orientación, que les comente que en el paquete que baje de phpmailer, en el archivo zip, no me vino ninguna libreria php_openssl.dll, será que no funciona porque no la tengo incluida como archivo en mi servidor, digo, donde yo aloje la pagina con mi script para enviar email y las clases class.phpmailer.php y class.smtp.php..?
Donde obtengo dicha libreria php_openssl.dll??? ..
Si saben.. aca estare..al menos es un avance...
  #8 (permalink)  
Antiguo 24/02/2009, 15:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Vovliendo al tema, les cuento q ya encontre la libreria que uds me dijeron: php_openssl.dll. La tengo dentro de la carpeta donde esta instalado el PHP. Es decir, hay algo q no entiendo de lo que me dijeron de compilar..debo incluir esa libreria dentro del espacio q me dieron en el host? no es más logico que lo tenga el php q esta en el servidor donde se corren mis script...? o como hago GATORV par acompilar mi script junto con esa libreria..? la pongo en la carpeta donde estan los archivos del phpmailer..? Disculpen pero no me queda claro..
  #9 (permalink)  
Antiguo 24/02/2009, 15:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

No solamente necesitas la libreria, tienes que compilar PHP con soporte para SSL, si no lo haz hecho te recomiendo bajar una instalación más personalizada como XAMPP que ya trae el soporte SSL compilado.

Saludos
  #10 (permalink)  
Antiguo 24/02/2009, 16:12
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Perdona, pero sigo sin comprender.. escribes para un nivel muy elevado.. solo tengo el php version 5 y uso el dreamweaver, simplemente hice un script para enviar un mail con php. Encontre la libreria q me decias, pero no se como hacer lo que dices: "compilar PHP con soporte para SSL,".. eso como lo hago, debo adquirir otra versión mas nueva del PHP...recuerda, soy nueva en esto.. te agradecería que pudieras ser un poco más claro, al menos para entender y poder solucionar mi problema. Veo q me falta algo. Una "instalación más personalizada como XAMPP que ya trae el soporte SSL compilado." como la consigo, donde la instalo..? pense que la libreria: php_openssl.dll, al estar en la carpeta de PHP, este simplemente la usaría.
Sino, si sabes alguna url donde informarme, tambien sera bienvenida.
Igual, gracias por la respuesta.
  #11 (permalink)  
Antiguo 24/02/2009, 17:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

No puedo ser menos "elevado" ya que es algo básico, necesitas una versión de PHP con soporte SSL habilitado ó compilar tu propia versión con SSL activado, si esto es muy complicado te recomendaría busca la versión. Esto es porque estas usando el SMTP de Gmail, si usaras un SMTP propio o de otra empresa no lo necesitarias.

Si vas a Google y pones XAMPP te sale en el primer link el sitio del XAMPP para descargarlo.

Saludos
  #12 (permalink)  
Antiguo 25/02/2009, 06:50
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Hola María,

Hay una versión Suite llamada AppServ que incorpora APACHE + MYSQL + PHP + PHPMYADMIN y supongo que no deberías tener problemas.

Es gratuito y de libre uso, lo puedes encontrar en www.appservnetwork.com y te bajas la versión 2.5.10 que es la última estable por ahora, ya que la 2.6.0 viene con algunas versiones alpha.

Una vez instalando, te crea una carpeta en C:\APPSERV donde tendrás un directorio www. Ahi puedes colocar tus archivos php.

Al ser una instalación siguiendo un asistente, puede ser (no lo he probado) que el SSL lo tenga habilitado para soporte.

Otra cosita: Tal y como he visto comentado en el post, buscando en el php.ini (que por defecto debería estar en C:\Windows) la línea donde ponga open_ssl.dll quítale el ; delante y ya lo tendrás habilitado.

Para evitarte de problemas, existen servidores de correo que no utilizan SSL y cuya clase PHPMailer funciona sin ningún tipo de problemas.

Un saludo.
  #13 (permalink)  
Antiguo 25/02/2009, 10:21
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

GATORV:
Ya he entendido lo quem ehas dicho. Sucuede que me baje la version de XAMPP 1.7.0, tal como me dijiste, la instale pero desde el localhost no puedo ver phpmyadmin. No se donde pone los archivos. Yo veo los html desde la carpeta XAMPP accediendo uno por uno, pero nada desde el localhost, sino desde la ubicacion donde aloje el XAMPP.. C:\Archivos de programa\xampp.
Asique lo desinstale, además porque me trae el filezilla (q ya lo tengo) y el Mercury mail que no lo quiero. Como bien sabes, necesito el openssl.
No pude hacer funcionar la pagina de inicio del XAMPP que se que la trae.

Por otro lado, rafaconpu yo tengo instalado, y utilizo el AppServ APACHE + MYSQL 5.0.22 + PHP 5.1.4 + PHPMYADMIN 2.8.2
Además, tambien le quite el ";" en el archivo php.ini. Pero, aun asi nada me funciona. Inentare actualizar la version del Appserv q tengo por la version q me dices q es mas nueva... encotnre las librerias donde aparece ssl, quite ";", "#", pero nada.. no encuentro una solcion. Probare de actualizar el appserv.
Gracias de todos modos.
Seguire buscando porque realmetne necesito sacar este script, porque mi hostin me proveyo de una casilla de este tipo. .. es un garron..! Saludos..
  #14 (permalink)  
Antiguo 25/02/2009, 11:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

El Xampp tiene una carpeta llamada htdocs ahí puedes entrar y poner tus archivos PHP para leerlos desde localhost.

Para entrar a phpmyadmin simplemente entras desde localhost/phpmyadmin.

Saludos
  #15 (permalink)  
Antiguo 25/02/2009, 11:42
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

hola.. mira siguiendo tu consejo de instalar el XAMPP, Yo tenia el APPSERV en una carpeta C:\APSERV\....con el phpmyadmin y php. Tengo el disco particionado, asique en la carpeta D:\Archivos de porgrama\xampp instale lo que baje desde google: XAMPP pero no entraba al localhost/phpmyadmin, con lo cual lo desinstale desde el panel de control, quitar porgramas.
Pero resulta q AHORA no se que me ha hecho que tampoco puedo entrar al //localhost/phpmyadmin con la version de phpmyadmin que yo tenia anteriormente (la queme vino con el appserv). Debe haber habido un conflicto. .. pense q el hecho de tener en diferentes particiones no afectaría. Bueno, no solo no me funciona mi script para enviar correo con ssl sino q ademas ahora no puedo probar mis paginas desde localhost..
Si sabes q puede haberse cambiado, de donde se llama al localhost te agradezco me lo digas. Un saludo.
Maria.
  #16 (permalink)  
Antiguo 25/02/2009, 12:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Mas que nada es que no puedes tener dos servicios activos de apache y de mysql, por eso el error, debes de desinstalar un paquete e instalar otro, como te comento XAMPP es el que conozco que tiene soporte para SSL.

Saludos
  #17 (permalink)  
Antiguo 25/02/2009, 13:26
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Gator.. mira desinstale todo y volvi a lo que usaba, reinstale el APPSERV 2.5.6 q es el que venia usando y ahora fucniona igual q antes, ya solucione el tema de ver phpmyadmin y mi sitio desde localhost.
Por lo demas, te comento q entre al foro de APPSERV y dicen mil cosas de como configurar ssl par aappserv. Probe de todo y nada funciona..ya desisto..!! me rindo..!! nada funciona, es una perdida de tiempo..
Igual gracias..!
un saludo.
  #18 (permalink)  
Antiguo 25/02/2009, 21:40
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 7 meses
Puntos: 33
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

mrmaria:

Es lamentable observar como has desistido.
La verdad es que tu codigo y la forma que lo has hecho esta bien,
el problema es que SSL es un asunto problematico y delicado.

Si te consigues un servidor que no sea de estos que requieren tantos
requisitos solo para conectar veras que te sale perfecto.

Cita:
les cuento que en el hosting que tengo solicité varias casillas de correo. Recien me entero que estan en google, es decir, me abrieron una cuenta en google con mi dominio.com.
Buscate un servidor mas flexible y veras que todo te sale bien.

Saludos
Y buena suerte
Franco
  #19 (permalink)  
Antiguo 26/02/2009, 07:22
 
Fecha de Ingreso: noviembre-2008
Mensajes: 122
Antigüedad: 16 años
Puntos: 4
Respuesta: Config. phpmailer para email Google Apps Edición Estándar

Ok.. gracias franco por la buena onda..!
Ya ayer me contacte con mi emrpesa de hosting y les solicite q me cambien el tipo de casilla..ya probe otra con phpmailer y envio por smtp y no me da problemas... pero con ssl y gmail.. si!
Un saludo.
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 14:44.