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)

casper_z 20-10-2010 10:27:58

He hablado muy rápido,....relamente me funciona, pero cada vez que abro de nuevo el programa para enviar un mail me lanza el error "Could not load SSL library". Y eso que las tengo en la carpeta del programa y en el system32 de windows. El tema es que si las reempleazo por las originales vuelve a funcionar, pero claro tengo que estar cada vez reeemplazando las librerias. ¿RAro no?

javiergamboa10 11-11-2010 16:09:17

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???

gluglu 11-11-2010 18:50:33

Miraste esto ?

http://www.clubdelphi.com/foros/show...140#post380140

elguille 26-11-2010 18:25:18

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

franciscoca 25-04-2012 17:13:20

IdExplicitTLSClientServerBase
 
Cita:

Empezado por roman (Mensaje 357477)
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

Hola tengo una consulta!! el gmailsend me anda perfectamente, pero cuando lo quiero compilar como para hacer unas pruebas o cambios

me tira el error:
[Fatal Error] Principal.pas(10): Unit IdIOHandlerStack was compiled with a different version of IdGlobal.TIdBytes

yo uso delphi 7 + indy 10

muchas gracias

Casimiro Notevi 25-04-2012 17:23:05

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración.

franciscoca 08-05-2012 17:12:59

Hola! estoy con el mismo problema q vos, uso delphi 7 + indy 10, y del ejemplo de gmailsend me envia correctamente desde una casilla de gmail a una de hotmail. El problema es cuando uso mi dominio como comentas vos soyyo@miempresa.com.ar me tira un error de authentication #5.7.1 y con la de soyyo@gmail.com lo envia correctamente...
El puerto q uso es el: 465
y el smtp es :

Código:

IdSSLIOHandlerSocketOpenSSL.Destination := 'smtp.miempresa.com.ar:465'; 
 IdSSLIOHandlerSocketOpenSSL.host := 'smtp.miempresa.com.ar:465';

Por favor si me podes dar una pista o una ayuda te lo agredeceria muchisimo

Casimiro Notevi 20-09-2013 13:18:02

hugobenitez, no repitas preguntas en distintos sitios, gracias.

hugobenitez 24-06-2016 03:04:36

Consulta sobre tu experiencia
 
Cita:

Empezado por casper_z (Mensaje 379830)
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.

Hola que tal Casper_z, quisiera saber si pudiste resolver y todavia te funciona esto que hiciste para enviar por gmail los correos? Gracias!

Casimiro Notevi 24-06-2016 08:13:22

http://www.clubdelphi.com/foros/show...ail#post505372

DenisDiaz 12-04-2017 00:44:06

Error SSL
 
Cordial saludo

Estoy tratando de enviar un correo con Delphi 10, probé el ejemplo que está en este hilo pero da este error:

Error connecting with SSL
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

He intentado hacer un ejemplo nuevo y también obtengo error de conexión SSL. Incluso probé un ejemplo que tengo en delphi 7 que funcionaba perfectamente y ahora me da error.

Agradezco la ayuda que me puedan dar. Muchas gracias.

Chris 20-04-2017 00:00:27

Cita:

Empezado por DenisDiaz (Mensaje 515470)
Cordial saludo

Estoy tratando de enviar un correo con Delphi 10, probé el ejemplo que está en este hilo pero da este error:

Error connecting with SSL
error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

He intentado hacer un ejemplo nuevo y también obtengo error de conexión SSL. Incluso probé un ejemplo que tengo en delphi 7 que funcionaba perfectamente y ahora me da error.

Agradezco la ayuda que me puedan dar. Muchas gracias.

La versión 3 de SSL fue abandonada por la industria hace como tres años por ser vulnerable a ataques. La industria informática fue degradarse a las primeras versiones 2.x y 1.x. Esto debe estar causando el errr que mencionas.

Deberías de cambiar o eliminar la linea:
Código:

IdSSLIOHandlerSocketOpenSSL.ssloptions.method := sslvSSLv3;
Saludos!

DenisDiaz 20-04-2017 05:49:57

Muchas gracias por la respuesta.

Usando esta línea se envían los correos:

IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;

Rc96 24-08-2017 16:20:43

Como se que dll debo usar
 
hola gente soy nuevo x aca, necesito que mi sistema envie un mail pero no logro hacer, me e bajado el ejm de roman pero al ejecutarlo me da error de soket #11001 host no found. el detalle es que veo que hay que seleccionar adecuadamente las dll segun la verision del delphi y la indy yo uso delphi10.2 indy 10.1.5 y la version de mi windows es 10 de 64 bits quesiera saber quien puede orientarme. desde ya muchas gracias

DenisDiaz 24-08-2017 17:41:35

Te recomiendo que me escribas a xxxxxxxxxxxx y te mando lo que tengo que me funciona, porque seguro es eso que dices y cuando no se tiene algo eso salen errores y es un dolor de cabeza que ha he vivido.

Casimiro Notevi 24-08-2017 18:32:43

Cita:

Empezado por DenisDiaz (Mensaje 520538)
Te recomiendo que me escribas a xxxxxxxxxxxxxxxx y te mando lo que tengo que me funciona, porque seguro es eso que dices y cuando no se tiene algo eso salen errores y es un dolor de cabeza que ha he vivido.

Por favor, lee nuestra guía de estilo, no es correcto lo que dices.


La franja horaria es GMT +2. Ahora son las 10:47:42.

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