Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Utilizar Gmail con SSL (https://www.clubdelphi.com/foros/showthread.php?t=40611)

JULIPO 22-02-2007 00:40:02

Utilizar Gmail con SSL
 
Estoy trabajando con delphi 2006, con componentes indy 10 quiero enviar email utilizando gmail pero me pide que utilice SSL y no se como hacerlo si alguien me puede ayudar le quedare muy agradecido.

julipo

roman 22-02-2007 05:32:43

1 Archivos Adjunto(s)
Hola,

Basándome en lo que Sotrono dice en el hilo Enviar mail con Gmail, preparé un ejemplo sencillo que adjunto. Para que funcione debes colocar las librerías libeay32.dll y ssleay32.dll en la carpeta gMailSend o en alguna carpeta en el path de Windows. Las librerías puedes bajarlas de http://indy.fulgan.com/SSL/

// Saludos

JULIPO 24-02-2007 21:30:21

Funciona muy bien
 
Gracias roman por tu ayuda el programa funciona muy bien. pero tengo un problema no se como desconectarme para enviar otro mail si coloco idsmtp.disconnect() me aparece un mensaje de error y si no lo coloco pue me indica que aun se encuentra conectado

nuevamente muchas gracias

roman 25-02-2007 07:13:32

Puedes verificar si ya está conectado o no:

Código Delphi [-]
if IdSMTP.Connected then
  IdSMTP.Connect;

// Saludos

mjjj 30-07-2007 19:58:51

Hola... estoy tratando de ahcer lo mismo que hice el amigo JULIPO... trate de bajare el ejemplo aportado por ROMAN, pero me dice que no tengo acceso al archivo.... sera que ya lo bajaron...

Creo que ese ejemplo me solucionaria todos mis problemas...

Que puedo hacer....

Saludos

roman 30-07-2007 20:10:30

Hay algún problema ahora con los adjuntos, pero puedes tomar el ejemplo de aquí.

// Saludos

avmm2004 01-08-2008 13:40:46

Cita:

Empezado por roman (Mensaje 184037)
Hola,

Basándome en lo que Sotrono dice en el hilo Enviar mail con Gmail, preparé un ejemplo sencillo que adjunto. Para que funcione debes colocar las librerías libeay32.dll y ssleay32.dll en la carpeta gMailSend o en alguna carpeta en el path de Windows. Las librerías puedes bajarlas de http://indy.fulgan.com/SSL/

// Saludos

Gracias, Roman. Me acabas de resolver un montón de problemas con el ejemplo este. Llevo todo el día dándole vueltas a un tema para enviar correos y esto es lo que estaba buscando.;););)

Gracias.

erickahr 12-03-2010 19:32:07

Cita:

Empezado por roman (Mensaje 184037)
Hola,

Basándome en lo que Sotrono dice en el hilo Enviar mail con Gmail, preparé un ejemplo sencillo que adjunto. Para que funcione debes colocar las librerías libeay32.dll y ssleay32.dll en la carpeta gMailSend o en alguna carpeta en el path de Windows. Las librerías puedes bajarlas de http://indy.fulgan.com/SSL/

// Saludos


Saludos Roman, aqui otra yo vez molestando, resulta que me baje el ejemplo que subiste, he intentado con ejemplos de muchas paginas, blogs, y demas... y no logro enviar un correo a gmail, resulta que ma baje los indy 10, y ya los tengo corriendo, las librerias que se mencionan en varias soluciones, segun veo mi codigo esta correcto, pero me manda un error que dice:

Cita:

'Error connecting with SSL'
Segun veo en un memo que puse para monitorear el evento Status del IdSSLIOHandlerSocketOpenSSL, me indica que si se conecta, pero a la hora de enviar el correo me sale la excepcion, ademas del error me abre el codigo de la unidad IdSSLOpenSSL, en una este Procedure:

Código Delphi [-]
procedure TIdSSLSocket.Connect(const pHandle: TIdStackSocketHandle; fSSLContext: TIdSSLContext);
var
  error: Integer;
  StatusStr: String;
begin
  fSSL := IdSslNew(fSSLContext.fContext);
  if fSSL = nil then exit;
  if IdSslSetAppData(fSSL, self) <= 0 then begin
    raise EIdOSSLDataBindingError.Create(RSSSLDataBindingError);
    exit;
  end;
  IdSslSetFd(fSSL, pHandle);
  error := IdSslConnect(fSSL);
  if error <= 0 then begin
//    error2 := IdSslGetError(fSSL, error);
    raise EIdOSSLConnectError.Create(RSSSLConnectError);// esta es la excepcion que me bota
  end;
  StatusStr := 'Cipher: name = ' + Cipher.Name + '; ' +    {Do not Localize}
               'description = ' + Cipher.Description + '; ' +    {Do not Localize}
               'bits = ' + IntToStr(Cipher.Bits) + '; ' +    {Do not Localize}
               'version = ' + Cipher.Version + '; ';    {Do not Localize}
  if (fParent is TIdSSLIOHandlerSocketOpenSSL) then begin
    (fParent as TIdSSLIOHandlerSocketOpenSSL).DoStatusInfo(StatusStr);
  end;
end;

Ojala me puedas ayudar (una vez mas :o).

hiceman 16-03-2010 00:31:33

El error se soluciona cambiando la propiedad SSLOptions.method a "sslvSSLv3" del componente IdSSLIOHandlerSocketOpenSSL.

saludos

roman 16-03-2010 04:38:02

Se agradece el aporte hiceman, y bienvenido a los foros. En mi caso me funciona con sslvSSLv2 pero esperemos que al compañero le funcione con la modificación que propones.

// Saludos

erickahr 16-03-2010 18:16:27

Cita:

Empezado por hiceman (Mensaje 357016)
El error se soluciona cambiando la propiedad SSLOptions.method a "sslvSSLv3" del componente IdSSLIOHandlerSocketOpenSSL.

saludos


Muchas gracias hiceman... me sirvio de lujo tu solucion, solo eso faltaba para correr mi aplicacion, no se a que se deba, pero en efecto funciono con "sslvSSLv3".

Gracias tambien a Roman, que sin el zip que subio no sabria por donde iniciar.

Saludos!!!.

Enan0 18-03-2010 10:33:48

Cita:

Empezado por roman (Mensaje 357053)
Se agradece el aporte hiceman, y bienvenido a los foros. En mi caso me funciona con sslvSSLv2 pero esperemos que al compañero le funcione con la modificación que propones.

// Saludos


Hola Roman, hace unos dias (creo que un mes) gmail decidio discontinuar el uso de SSLv2 o algo similar. (lo lei en uno de los foros de Gmail) ya que de golpe. mis aplicaciones utilizando Indy9 y SSL dejaron de funcionar. (solo para gmail).

para ser mas exacto da aca lo lei!

http://www.google.com/support/forum/...108e4190&hl=en

espero que sirva de ayuda y gracias por el ejemplo con indy 10, ya que nunca habia podido hacer funcionar esta version, voy a ver si apartir de aca puedo hacerlo funcionar con IMAP.

Enan0 18-03-2010 10:40:31

Cita:

Empezado por hiceman (Mensaje 357016)
El error se soluciona cambiando la propiedad SSLOptions.method a "sslvSSLv3" del componente IdSSLIOHandlerSocketOpenSSL.

saludos


Gracias Hiceman! la verdad que esto del error "Error connection with SSL" me estaba haciendo caer un poco mas el pelo ....:)

roman 18-03-2010 20:58:50

Excelente aporte. Ya he comprobado que a mi tampoco me funciona ya el ejemplo de arriba y con el cambio propuesto todo vuelve a la normalidad. Muchas gracias.

He sustituido el ejemplo original con la nueva versión y he agregado en el zip el ejecutable (pero éste funcionará sólo si se tienen Delphi 7 y las bibliotecas SSL instaladas).

// Saludos

rolandoj 12-10-2010 02:53:38

Más problemas con gmail
 
Hola a todos,

Muy buenos aportes.

Les cuento que estoy tratando de enviar correos desde una cuenta administarada por gmail; pero, tengo problemas. Veamos.

1. Tengo Delphi 2007 y bajé las librerías de la última versión (openssl-1.0.0a-i386-win32); aunque también probe con alguna de las anteriores.

2. Modifiqué el campo "De" del ejemplo de Roman, para digitar ahí una dirección de correo completa y poder usar un dominio propio; pero administrado por gmail. Así pués, si el dominio gmail fuera miempresa.com, y el usuario soyyo , debo digitar soyyo@miempresa.com .

3. En ese punto, pensaba que por ser administrado por gmail, debía funcionar igual, en especial porque cuando se configura esa cuenta con OutLook u otros clientes de correo, la parametrización que usamos es la de gmail; pero con Delphi e Indy falló.

4. Para asegurar que el código de Roman aún funcionaba bien (gmail puede haber hecho otra vez cambios), probé a usar una cuenta "pura" gmail.com. Eso también me fallaba, hasta que descubrimos que funciona cuando tengo simultáneamente abierta la cuenta gmail. Como curiosidad, cuando detectamos esto, la cuenta la teníamos abierta en otro computador. Alguna idea de por qué pasa eso ?. Será un problema global por otro cambio gmail o exclusivo de mi equipo ?

Alguién ha podido hacer el envío de correos empleando una cuenta de dominio propia; pero, administrada por gmail ?

rolandoj 12-10-2010 04:58:38

Solucionado caso de cuentas administradas
 
Hola,

Gracias a cualquiera que haya leído la pregunta.

Bueno, ya lo solucioné. Mi error era que había ajustado para que el From del IdMessage no mostrara el sufijo gmail.com; pero, pasé por alto que en ese caso en el TIdSMTP el username debe incluir el dominio administrado; es decir, debe ser soyyo@miempresa.com . y no solamente soyyo.

Lo que me despitó y me hizo buscar por otro lado es que los mensajes de error no tenían nada que ver con la causa y sobre todo lo de que el envío normal no funcionaba; ya que parece ser un verdadero bug. Eso es algo sobre lo que los diseñadores de Indy podrían trabajar; le puede ahorrar a la gente mucho tiempo de pruebas e investigación.

casper_z 19-10-2010 14:50:05

error
 
Pues yo lo tengo todo exactamente igual y me da un error del tipo " ....exe faulted with message: 'access violation at 0x00404230 ....."

rolandoj 19-10-2010 20:07:04

Que versiones usas ?
 
Cita:

Empezado por casper_z (Mensaje 379708)
Pues yo lo tengo todo exactamente igual y me da un error del tipo " ....exe faulted with message: 'access violation at 0x00404230 ....."

Hola,

Cuando dices que tienes todo igual, te refieres también a que son exactamente las mismas versiones de Delphi, Indy y SSL ?, o solo te refieres a la parte de código. Si no tienes las mismas versiones, indícanos que versiones usas de Delphi, de Indy y de SSL Como mencionamos en este hilo http://www.clubdelphi.com/foros/showthread.php?t=70314 , hay problemas en el uso de versiones combinadas de Delphi, Indy y SSL

casper_z 20-10-2010 08:31:27

Uso DElphi 5 y las indy 10, ya que las Indy 9 no triaian la propiedad para SSL para enviar mensajes a traves de gmail. Las librerias SSL que utilizo son las openssl-1.0.0a.

casper_z 20-10-2010 09:06:43

Bueno despues de hacer unos cambios, quitar las Indy 10 y poner las 9, he conseguido que funcione. Decididamente Delphi 5 e Indy 10 no son nada compatibles para usar con SSL.


La franja horaria es GMT +2. Ahora son las 14:39:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi