Foros del Web » Administración de Sistemas » Software para Servers »

Mails desde localhost con gmail

Estas en el tema de Mails desde localhost con gmail en el foro de Software para Servers en Foros del Web. Bueno me he roto la melena para conseguir que un componente de Joomla que necesito se ponga en funcionamiento y no puedo lograrlo. El tema ...
  #1 (permalink)  
Antiguo 19/08/2010, 19:39
 
Fecha de Ingreso: septiembre-2009
Mensajes: 87
Antigüedad: 15 años, 2 meses
Puntos: 1
Mails desde localhost con gmail

Bueno me he roto la melena para conseguir que un componente de Joomla que necesito se ponga en funcionamiento y no puedo lograrlo. El tema es que, a diferencia del resto de los componentes, este es único que si o si debe utilizar el servidor smtp que está en php.ini. Es decir, que no puedo utilizar los servidores alternativos que provee joomla. Sin embargo, configurar el sendmail para que funcione con el SMTP de Gmail es francamente imposible. He bajado las actualizaciones, tengo el openssl.dll activado en locahost. Apagué el firewall, el antivirus, coloqué las dll necesarias en el directorio sendmail dentro de Wamp...etc...etc. pero no logro que mande mails via Gmail. Desde luego, tomé la iniciativa tambien de poner un server smtp en localhost; pero como todos salen por el puerto 25 solitos y ninguno de los que encontré trabajan con el ssl de Gmail, no funciona. En el mejor de los casos, pude enviarme correo spam. A partir de que Gmail implementó el protocolo SSL V.3, el sendmail, parece, me quedó obsoleto. He seguido algunos ejemplos para revivir este metodo usando el stunnel. La unica que me queda es que alguien sepa decirme como configurar algun servidor smtp con outlook para que el server mande el correo a outlook y este lo envie desde mi cuenta gmail automaticamente. Sin embargo, no hay forma de que mi localhost mande correo válido a través de sendmail. ¿Alguien tiene idea de estos asuntos?


Aclaro que el tema no es Joomla, que el pobrecito lo hace bastante bien. Es directamente con la imposibilidad de enviar mails desde localhost via gmail para que no pase por spam.
  #2 (permalink)  
Antiguo 19/08/2010, 23:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 87
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Mails desde localhost con gmail

Calculo que no lo van a necesitar a menudo: pero estoy seguro que a algun otro trastornado que como yo se empeñe en enviar mails desde localhost con el SMTP de gmail o google apps le va a servir. El problema era el siguiente: resulta que google ha cambiado su protocolo de seguridad para autentificar su ingreso al smtp. De modo, pues, que salvo que se haga por la clase phpmailer modificada para usar el ssl de google, cualquier intento de salir con los correos desde la funcion de correo php que deriva a sendmail se volvia imposible. Asi, pues, que para que tu server apache (solo o el que instala wamp o xammp) mande correos desde localhost en Win lo que debes hacer es lo siguiente:

1 - Si tu server no trae fake sendmail de Byron Jones, lo bajas de aquí

http://www.glob.com.au/sendmail/sendmail.zip

2 - Copias los archivos en un directorio que llamas, p.ej, sendmail dentro de la carpeta de wamp o xammp.

3 - Como Gmail o google apps utilizan TLS/SSL, tambien bajas el siguiente archivo:

http://glob.com.au/sendmail/sendmail-SSL.zip

Y los colocas en la misma carpeta anterior. Es importante que esten las dll

4 - Abres el archivo php.ini de la versión de php que efectivamente esté corriendo en tu servidor. En Wamp o Xammp lo más practico es ir al menu php y alli podemos abrir el php.ini.

5 - Una vez que tienes abierto el php.ini buscas el apartado "mail function". Cuando termines de configurarlo te tiene que quedar algo asi:

Código:
[mail function]
; For Win32 only.
;SMTP = smtp.mailhost.tld
;smtp_port = 25

; For Win32 only.
sendmail_from = [email protected]

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
sendmail_path =  "c:\wamp\sendmail\sendmail.exe -t"
Donde "c:\wamp\sendmail\sendmail.exe -t" es el directorio donde bajaste todo lo anterior. Ten en cuenta esto si usas Xammp u otro server para apuntar al directorio correcto.

Asimismo, dentro de php.ini verificas que la extensión extension=php_openssl.dll esté habilitada. Si la ves asi: ;extension=php_openssl.dll, le quitas el punto y coma y con eso la habilitas.


6 - Abres ahora el archivo sendmail.ini que donde bajaste todo, este archivo te tiene que quedar mas o menos asi:

Código:
; configuration for fake sendmail

; if this file doesn't exist, sendmail.exe will look for the settings in
; the registry, under HKLM\Software\Sendmail

[sendmail]

; you must change mail.mydomain.com to your smtp server,
; or to IIS's "pickup" directory.  (generally C:\Inetpub\mailroot\Pickup)
; emails delivered via IIS's pickup directory cause sendmail to
; run quicker, but you won't get error messages back to the calling
; application.

smtp_server=localhost

; smtp port (normally 25)

smtp_port=25

; SMTPS (SSL) support
;  auto = use SSL for port 465, otherwise try to use TLS
;   ssl  = alway use SSL
;   tls  = always use TLS
;   none = never try to use SSL

smtp_ssl=auto

; the default domain for this server will be read from the registry
; this will be appended to email addresses when one isn't provided
; if you want to override the value in the registry, uncomment and modify

default_domain=gmail.com

; log smtp errors to error.log (defaults to same directory as sendmail.exe)
; uncomment to enable logging

error_logfile=error.log

; create debug log as debug.log (defaults to same directory as sendmail.exe)
; uncomment to enable debugging

;debug_logfile=debug.log

; if your smtp server requires authentication, modify the following two lines

[email protected]
auth_password=xxxxxx

; if your smtp server uses pop3 before smtp authentication, modify the 
; following three lines.  do not enable unless it is required.

;pop3_server=
;pop3_username=
;pop3_password=

; force the sender to always be the following email address
; this will only affect the "MAIL FROM" command, it won't modify 
; the "From: " header of the message content

[email protected]

; force the sender to always be the following email address
; this will only affect the "RCTP TO" command, it won't modify 
; the "To: " header of the message content

force_recipient=

; sendmail will use your hostname and your default_domain in the ehlo/helo
; smtp greeting.  you can manually set the ehlo/helo name if required

; hostname=
7 - Ya queda poco, ánimo. Ahora, debido a la modificación que ha hecho google, lo que tienes que hacer es bajar un soft llamado stunnel, que es el encargado de hacer de puente entre el sendmail y smtp de google proporcionandole los datos que este ultimo requiere en cuanto a la seguridad. Lo bajas desde aquí:

http://www.stunnel.org/download/

Lo instalas pero no lo corres todavía.

En cambio, abres el archivo stunnel.conf y lo modificas para que tome los envios que sendmail hace y te quede así:

Código:
; Sample stunnel configuration file by Michal Trojnara 2002-2006
; Some options used here may not be adequate for your particular configuration

; Certificate/key is needed in server mode and optional in client mode
; The default certificate is provided only for testing and should not
; be used in a production environment
cert = stunnel.pem
;key = stunnel.pem

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1

; Workaround for Eudora bug
;options = DONT_INSERT_EMPTY_FRAGMENTS

; Authentication stuff
;verify = 2
; Don't forget to c_rehash CApath
;CApath = certs
; It's often easier to use CAfile
;CAfile = certs.pem
; Don't forget to c_rehash CRLpath
;CRLpath = crls
; Alternatively you can use CRLfile
;CRLfile = crls.pem

; Some debugging stuff useful for troubleshooting
debug = 7
output = stunnel.log

; Use it for client mode
client = yes

; Service-level configuration

[pop3s]
accept  = 995
connect = 110

[imaps]
accept  = 993
connect = 143

[ssmtp]
accept  = 465
connect = 25

;[https]
;accept  = 443
;connect = 80
;TIMEOUTclose = 0

[smtpg] 
accept = 127.0.0.1:25 
connect = smtp.gmail.com:465

; vim:ft=dosini

8 - Echo esto, puedes correr stunnel.

9 - Por último: reinicias wamp o xammp.

10 - Vualá.... puedes mandar mensajes desde localhost con tu cuenta de gmail y correr scripts tanto en joomla como en php solo y evitas todas las soluciones que te mandan los mensajes a la carpeta de spam. Recuerda, sin embargo, que estos envios están limitados a 200/500 por día. No es para listas de correos muy grandes, spam o sitios con mucho trafico de emails.

Espero que sirva.

PS: ojo con hacer la primera prueba con el firewall o el antivirus activos. Haganlo sin ellos para eliminar el riesgo de bloqueos, luego lo encienden nuevamente.

Cualquier duda pregunten sin problemas

Última edición por fabayan; 19/08/2010 a las 23:26
  #3 (permalink)  
Antiguo 30/08/2010, 08:00
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Mails desde localhost con gmail

Cita:
Iniciado por fabayan Ver Mensaje
Bueno me he roto la melena para conseguir que un componente de Joomla que necesito se ponga en funcionamiento y no puedo lograrlo. El tema es que, a diferencia del resto de los componentes, este es único que si o si debe utilizar el servidor smtp que está en php.ini. Es decir, que no puedo utilizar los servidores alternativos que provee joomla. Sin embargo, configurar el sendmail para que funcione con el SMTP de Gmail es francamente imposible. He bajado las actualizaciones, tengo el openssl.dll activado en locahost. Apagué el firewall, el antivirus, coloqué las dll necesarias en el directorio sendmail dentro de Wamp...etc...etc. pero no logro que mande mails via Gmail. Desde luego, tomé la iniciativa tambien de poner un server smtp en localhost; pero como todos salen por el puerto 25 solitos y ninguno de los que encontré trabajan con el ssl de Gmail, no funciona. En el mejor de los casos, pude enviarme correo spam. A partir de que Gmail implementó el protocolo SSL V.3, el sendmail, parece, me quedó obsoleto. He seguido algunos ejemplos para revivir este metodo usando el stunnel. La unica que me queda es que alguien sepa decirme como configurar algun servidor smtp con outlook para que el server mande el correo a outlook y este lo envie desde mi cuenta gmail automaticamente. Sin embargo, no hay forma de que mi localhost mande correo válido a través de sendmail. ¿Alguien tiene idea de estos asuntos?


Aclaro que el tema no es Joomla, que el pobrecito lo hace bastante bien. Es directamente con la imposibilidad de enviar mails desde localhost via gmail para que no pase por spam.
  #4 (permalink)  
Antiguo 30/08/2010, 08:37
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Mails desde localhost con gmail

Hola. Lei lo que escribiste y al final decis que "...el tema no es joomla, que el pobrecito lo hace bastante bien".

Sabes que yo estoy empezando con joomla y no puedo hacer que se envie el mail a un usuario que recien se registre a traves del servidor smtp de google. Me aparece el error: "Error SMTP: No es posible conectarse con el servidor SMTP".

Tengo instalado el Wampserver y esta es la configuracion que tengo:

Programa de correo : Servidor SMTP
Dirección del remitente : [email protected]
Nombre del remitente: Tutorial
Ruta para Sendmail: /usr/sbin/sendmail
Autenticacion SMTP: No
SMTP Security: Nada
SMTP Port: 587
Usuario SMTP: [email protected]
Contraseña SMTP: ******** (contraseña de [email protected])
Servidor SMTP: smtp.gmail.com

Hice la prueba cambiando auntenticacion a SI y el SMTP security a SSL y TSL pero aun asi no funciona, no se cual es el error y ya llevo dias con este problema.
Busque por google y en varias partes escriben lo mismo que yo en la configuracion pero a mi me da el error que te mencione antes.

Ojala me puedas ayudar. Desde ya muchas gracias
  #5 (permalink)  
Antiguo 31/08/2010, 14:11
 
Fecha de Ingreso: septiembre-2009
Mensajes: 87
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Mails desde localhost con gmail

Te cuento: el problema está en la configuración interna de Joomla. Tienes que modificar los parametros de la conexión SMPT a los siguientes valores:

Programa de correo: servidor smtp
Direccion de remitente: tudireccion@
Nombre: tu nombre
Ruta: /usr/sbin/sendmail
Autenticacion: Si
Seguridad: SSL
Puerto: 465
Usuario: tu mail completo
Contraseña: tu pass
Servidor SMTP: smpt.gmail.com

y modificar el archivo phpmailer de la carpeta libraries/phpmailer para que tu archivo phpmailer.php quede adaptado al protocolo de seguridad que tiene gmail algo como esto:


Código:
  /////////////////////////////////////////////////
  // PROPERTIES FOR SMTP
  /////////////////////////////////////////////////

  /**
   * Sets the SMTP hosts.  All hosts must be separated by a
   * semicolon.  You can also specify a different port
   * for each host by using this format: [hostname:port]
   * (e.g. "smtp1.example.com:25;smtp2.example.com").
   * Hosts will be tried in order.
   * @var string
   */
  var $Host        = 'ssl://smtp.gmail.com:465';

  /**
   * Sets the default SMTP server port.
   * @var int
   */
  var $Port        = 465;

  /**
   * Sets the SMTP HELO of the message (Default is $Hostname).
   * @var string
   */
  var $Helo        = '';

  /**
   * Sets connection prefix.
   * Options are "", "ssl" or "tls"
   * @var string
   */
  var $SMTPSecure = "true";

  /**
   * Sets SMTP authentication. Utilizes the Username and Password variables.
   * @var bool
   */
  var $SMTPAuth     = false;

  /**
   * Sets SMTP username.
   * @var string
   */
  var $Username     = '[email protected]';

  /**
   * Sets SMTP password.
   * @var string
   */
  var $Password     = 'password de tu cuenta';

  /**
   * Sets the SMTP server timeout in seconds. This function will not
   * work with the win32 version.
   * @var int
   */
  var $Timeout      = 10;

  /**
   * Sets SMTP class debugging on or off.
   * @var bool
   */
  var $SMTPDebug    = false;

  /**
   * Prevents the SMTP connection from being closed after each mail
   * sending.  If this is set to true then to close the connection
   * requires an explicit call to SmtpClose().
   * @var bool
   */
  var $SMTPKeepAlive = false;

  /**
   * Provides the ability to have the TO field process individual
   * emails, instead of sending to entire TO addresses
   * @var bool
   */
  var $SingleTo = false;

  /
Espero que te sirva.

Saludos
  #6 (permalink)  
Antiguo 02/09/2010, 05:25
 
Fecha de Ingreso: agosto-2010
Mensajes: 3
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Mails desde localhost con gmail

Hola.Gracias por tu respuesta.
Hice exactamente lo que escribiste y no fuinciona, sigue apareciendo el mismo mensaje de error.
Luego cambie el numero de puerto al 587 tanto en joomla como en phpmailer.php y nada, sigo teniendo el mismo error.
Ya no se que cambiar, o sera que la version de Joomla que estoy usando que es la 1.5.20 tiene errores?
  #7 (permalink)  
Antiguo 14/06/2011, 10:58
 
Fecha de Ingreso: octubre-2009
Ubicación: Lima
Mensajes: 31
Antigüedad: 15 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Mails desde localhost con gmail

Bien he visto que aun no le dan respuesta, pues aqui te puedo dar una solucion muy buena y practica por que es muy simple pero efectiva y te llegan los correos a tu bandeja usando esta configuracion en tu localhost configurandolo con tu gmail.

[URL="http://www.perubinario.com/2011/06/configurar-sendmail-con-wamp-en-localhost-usando-gmail"]http://www.perubinario.com/2011/06/configurar-sendmail-con-wamp-en-localhost-usando-gmail[/URL]


PD: No se por que no sale la URL pero es esa...

http://www.perubinario.com/2011/06/configurar-sendmail-con-wamp-en-localhost-usando-gmail

Aqui podras leer bien el articulo.
Muchos éxitos.

Etiquetas: gmail, localhost, mails, servidores
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 02:20.