Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-02-2007
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 22-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Archivos Adjuntos
Tipo de Archivo: zip gMailSend.zip (137,4 KB, 1338 visitas)
Responder Con Cita
  #3  
Antiguo 24-02-2007
Avatar de JULIPO
JULIPO JULIPO is offline
Miembro
 
Registrado: ene 2006
Ubicación: Bogota Colombia
Posts: 187
Poder: 19
JULIPO Va por buen camino
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

Última edición por JULIPO fecha: 24-02-2007 a las 22:54:49.
Responder Con Cita
  #4  
Antiguo 25-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Puedes verificar si ya está conectado o no:

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

// Saludos
Responder Con Cita
  #5  
Antiguo 30-07-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 30-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hay algún problema ahora con los adjuntos, pero puedes tomar el ejemplo de aquí.

// Saludos
Responder Con Cita
  #7  
Antiguo 20-09-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
hugobenitez, no repitas preguntas en distintos sitios, gracias.
Responder Con Cita
  #8  
Antiguo 01-08-2008
avmm2004 avmm2004 is offline
Miembro
 
Registrado: jun 2006
Ubicación: Santa cruz de Tenerife, Islas Canarias
Posts: 500
Poder: 18
avmm2004 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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.
Responder Con Cita
  #9  
Antiguo 12-03-2010
Avatar de erickahr
erickahr erickahr is offline
Miembro
 
Registrado: feb 2010
Posts: 94
Poder: 15
erickahr Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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 ).
__________________
Nadie puede separar su fe de sus actos, o sus creencias de sus afanes
Responder Con Cita
  #10  
Antiguo 16-03-2010
hiceman hiceman is offline
Registrado
 
Registrado: ago 2006
Posts: 1
Poder: 0
hiceman Va por buen camino
El error se soluciona cambiando la propiedad SSLOptions.method a "sslvSSLv3" del componente IdSSLIOHandlerSocketOpenSSL.

saludos
Responder Con Cita
  #11  
Antiguo 16-03-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #12  
Antiguo 18-03-2010
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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.
Responder Con Cita
  #13  
Antiguo 16-03-2010
Avatar de erickahr
erickahr erickahr is offline
Miembro
 
Registrado: feb 2010
Posts: 94
Poder: 15
erickahr Va por buen camino
Thumbs up

Cita:
Empezado por hiceman Ver Mensaje
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!!!.
__________________
Nadie puede separar su fe de sus actos, o sus creencias de sus afanes
Responder Con Cita
  #14  
Antiguo 18-03-2010
Avatar de Enan0
Enan0 Enan0 is offline
Miembro
 
Registrado: may 2004
Ubicación: Argentina
Posts: 565
Poder: 20
Enan0 Va por buen camino
Cita:
Empezado por hiceman Ver Mensaje
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 ....
Responder Con Cita
  #15  
Antiguo 11-11-2010
javiergamboa10 javiergamboa10 is offline
Registrado
NULL
 
Registrado: nov 2010
Posts: 1
Poder: 0
javiergamboa10 Va por buen camino
Ayuda

Roman y amigos:

Ante todo gracias por los aportes.

Descargé el ejemplo para enviar correos desde cuentas de gmail, pero al ejecutarlo me sale el error:

Socket error # 10060
Connection timed out.

Actualmente uso Delphi 2007 e Indy 10.

Que estaré haciendo mal???
Responder Con Cita
  #16  
Antiguo 11-11-2010
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Miraste esto ?

http://www.clubdelphi.com/foros/show...140#post380140
__________________
Piensa siempre en positivo !
Responder Con Cita
  #17  
Antiguo 26-11-2010
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Poder: 20
elguille Va por buen camino
Una función sin componentes declarados resumiendo lo dicho para poner en cualquier lado
Código Delphi [-]
Uses
  Forms, db, dbTables, dbGrids, Classes, Messages, Buttons,
  StdCtrls, Controls, Dialogs, SysUtils, IniFiles, Wintypes,
  DBIProcs, DBITypes, DBIErrs, ComCtrls, ExtCtrls, Printers,
  Windows, ShlObj, Ole2, Registry, quickrpt, qrctrls, Grids, shellapi, comobj,
  Variants,
  dbctrls, IdHTTP, WinInet, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
  IdSSL, IdSSLOpenSSL, IdExplicitTLSClientServerBase,
  IdBaseComponent, IdComponent, IdTCPServer, IdSMTPServer,
  IdMessage, IdEMailAddress, IdTCPConnection, IdTCPClient, IdMessageClient,
  IdSMTP, idexception, myaccess, IdAttachmentFile;

  procedure emailgmail(host: string; nombre: string; password: string;
    port: integer; desde: string; hasta: string; asunto: string;
    cuerpo: string; adjunto: string);
  var
    IDSMTP1: TIDSMTP; // Componente de envio de correo
    IdSSLIOHandlerSocketOpenSSL: tIdSSLIOHandlerSocketOpenSSL;
    mensaje: TIdMessage;
  begin
    // ejemplo emailgmail('smtp.gmail.com',*usuario*,*contraseña*,465,*emailorigen*,*emaildestino*,*asunto*,*cuerpo  *,*ficheroadjunto*);
    IdSSLIOHandlerSocketOpenSSL := tIdSSLIOHandlerSocketOpenSSL.Create(nil);
    IdSSLIOHandlerSocketOpenSSL.Destination := 'smtp.gmail.com:465';
    IdSSLIOHandlerSocketOpenSSL.host := 'smtp.gmail.com:465';
    IdSSLIOHandlerSocketOpenSSL.port := 465;
    IdSSLIOHandlerSocketOpenSSL.ssloptions.method := sslvSSLv3;
    IdSSLIOHandlerSocketOpenSSL.ssloptions.mode := sslmUnassigned;
    IDSMTP1 := TIDSMTP.Create(nil);
    IDSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
    IDSMTP1.UserNAME := nombre;
    IDSMTP1.password := password;
    IDSMTP1.host := host;
    IDSMTP1.port := port;
    IDSMTP1.UseTLS := utUseImplicitTLS;
    mensaje := TIdMessage.Create(nil);
    with mensaje do
    begin
      Body.Add(cuerpo);
      From.Text := desde;
      Recipients.EMailAddresses := hasta;
      Subject := asunto;
      Priority := TIdMessagePriority(mpHighest); // prioridad del mensaje
      CCList.EMailAddresses := '';
      BccList.EMailAddresses := '';
      if adjunto <> '' THEN
        TIdAttachmentfile.Create(mensaje.MessageParts, adjunto);
    end;
    with IDSMTP1 do
    begin
      try
        Connect;
        try
          // Envio el mensaje.
          Send(mensaje);
        finally
          Disconnect;
        end;
        // MessageDlg('Enviado Correctamente', mtInformation, [mbOK], 0);
      except
        // Capturo algunas excepciones que pueden ocurrir (alguien podria ampliarlo con los posibles errores)
        { ON E: EProtocolReplyError do begin
          MessageDlg('No se ha podido enviar el email.' + #13 +
          'Incorrecto el email o el usuario o la password.', mtError, [mbOK], 0);
          end; }
        on E: EFOpenError do
        begin
          MessageDlg('No se ha podido enviar el email.' + #13 +
              'Fichero Adjunto desconocido o erróneo.', mtError, [mbOK], 0);
        end;
        { on E: EIdSocketError do begin
          MessageDlg('No se ha podido enviar el email.'+ #13 +
          'Host desconocido o incorrecto.', mtError, [mbOK], 0);
          end }
        else
          begin
            MessageDlg('Fallo en el envio de email', mtError, [mbOK], 0);
          end;
        end;
      end;
      IDSMTP1.free;
      IdSSLIOHandlerSocketOpenSSL.free;
    ENd;
ejemplo sustituyendo lo encerrado en * por vuestras necesidades

emailgmail('smtp.gmail.com',*usuario*,*contraseña*,465,*emailorigen*,*emaildestino*,*asunto*,*cuerpo *,*ficheroadjunto*);

(no os olvideis de copiar las dll de OPENSSL mencionadas en el post accesibles al ejecutable)

Delphi 2010 y las Indy que vienen con el

Última edición por elguille fecha: 26-11-2010 a las 18:29:16.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Gmail reproduce MP3 vtdeleon Noticias 2 24-08-2006 01:24:52
Gmail or not Gmail this is this thread.... marcoszorrilla Noticias 0 23-10-2005 13:29:02
gmail en español Lepe Noticias 9 23-04-2005 13:19:55
...Gmail Filesystem... Jure Noticias 3 12-10-2004 10:43:47


La franja horaria es GMT +2. Ahora son las 18:10:37.


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
Copyright 1996-2007 Club Delphi