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 10-02-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Pametros de envio de correo inconsistentes

Buen dia;

me encuentro con un problema extraño, los parámetros que tengo para envío de correos, funcionan sin problema en la maquina de desarrollo, pero no en las maquinas de usuarios (he probado con 2 maquinas diferentes en la misma conexión de internet).

** adjunto imagen de los parametros *
Imágenes Adjuntas
Tipo de Archivo: png Image1.png (2,8 KB, 9 visitas)
Responder Con Cita
  #2  
Antiguo 10-02-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
agregado:

Esos parámetros SOLO funcionan desde el IDE (delphi 7) pero si ejecuto la aplicación fuera del IDE no funcionan.

El error es : Connection closed gracefully
Responder Con Cita
  #3  
Antiguo 10-02-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no dices al menos el error que muestra.
Responder Con Cita
  #4  
Antiguo 11-02-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Si no dices al menos el error que muestra.
SMTP: connection closed gracefully
Responder Con Cita
  #5  
Antiguo 11-02-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Sí, pero cuándo, en qué línea, pon el código para que veamos algo.
Responder Con Cita
  #6  
Antiguo 11-02-2021
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Sí, pero cuándo, en qué línea, pon el código para que veamos algo.
ah ok, tratare de ser mas especifico.... estoy usando el código que encontré en:

https://proyectoa.com/como-enviar-co...i-6-e-indy-10/

el cual es:

Código Delphi [-]
var
  mail : TIdMessage;
  adjuntos : TStrings;
  i,x : integer;
begin
     if txtServidorSMTP.Text = '' then
     begin
          MessageDlg ('Debe indicar el la dirección del servidor de SMTP.', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;

     if (lsAutenticacion.Text <> 'Ninguna') and ((txtUsuario.Text = '') or (txtContrasena.Text = '')) then
     begin
          MessageDlg ('Debe indicar el usuario y contraseña de autenticación del servidor SMTP.', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;

     if lsTLS.Text = '' then
     begin
          MessageDlg ('Debe indicar si requiere TLS / SSL.', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;

     if txtPuerto.Text = '' then
     begin
          MessageDlg ('Debe indicar el puerto de envío de mail (por defecto para TLS ' + 'es 587 y sin TLS es 25).', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;

     if txtRemitenteNombre.Text = '' then
     begin
          MessageDlg ('Debe indicar el nombre del remitente.', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;

     if txtRemitenteMail.Text = '' then
     begin
          MessageDlg ('Debe indicar el e-mail del remitente.', mtWarning, [mbok], 0);
          tabDatos.Show;
          exit;
     end;
     if txtDestinatario.Text = '' then
     begin
          MessageDlg ('Debe indicar el e-mail del destinatario (para varios mails separar con comas).',
           mtWarning, [mbok], 0);
          tabEnviarMail.Show;
          exit;
     end;
     if txtAsunto.Text = '' then
     begin
          MessageDlg ('Debe indicar el asunto del correo electrónico.', mtWarning, [mbok], 0);
          tabEnviarMail.Show;
          exit;
     end;
     if txtMensaje.Text = '' then
     begin
          MessageDlg ('Debe indicar el cuerpo del correo electrónico.', mtWarning, [mbok], 0);
          tabEnviarMail.Show;
          exit;
     end;
     if (pos('adjunto', AnsiLowerCase(txtMensaje.Text)) > 0) and (lFicherosAdjuntos.Count = 0) then
     begin
          if MessageDlg ('Ha introducido la palabra "adjunto" en el cuerpo pero no ha adjuntado documentos ' +
               'al correo electrónico ¿Desea continuar con el envío sin adjuntos?',
               mtConfirmation, [mbYes, mbNo], 0) = mrno then
          begin
               tabEnviarMail.Show;
               exit;
          end;
     end;


     //Si no está conectado al servidor SMTP conectar
     with idSMTP do
     begin
          if lsMetdoSSL.Text = 'sslvTLSv1' then
               IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
          if lsMetdoSSL.Text = 'sslvTLSv2' then
               IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv2;
          if lsMetdoSSL.Text = 'sslvTLSv23' then
               IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv23;
          if lsMetdoSSL.Text = 'sslvTLSv3' then
               IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;

          IoHandler := IdSSLIOHandlerSocketOpenSSL1;

          //Tipo de autenticación
          if lsAutenticacion.Text = 'Defecto' then
               AuthType := atDefault;
          if lsAutenticacion.Text = 'Ninguna' then
               AuthType := atNone;
          if lsAutenticacion.Text = 'SASL' then
               AuthType := atSASL;

          //Si se requiere autenticación para el envío indicar usuario y contraseña
          Username := txtUsuario.Text;
          Password := txtContrasena.Text;
          Host := txtServidorSMTP.Text;

          //Usar TLS SLL para el envío
          if lsTLS.Text = 'TLS explícito' then
            useTLS := utUseExplicitTLS;
          if lsTLS.Text = 'Sin soporte TLS' then
            useTLS := utNoTLSSupport;
          if lsTLS.Text = 'TLS implícito' then
            useTLS := utUseExplicitTLS;
          if lsTLS.Text = 'TLS requerido' then
            useTLS := utUseExplicitTLS;

          //Puerto que se usará para la conexión con el servidor SMTP, en el caso de TLS el de defecto es 587
          port := strtoint(txtPuerto.Text);
     end;

     try
          txtResultado.Lines.add(DateTimeToStr(now) + ' Conectando con el servidor ' + txtServidorSMTP.Text);
          idSMTP.Connect;
          txtResultado.Lines.add(DateTimeToStr(now) + ' Conectado a ' + txtServidorSMTP.Text);
     except
          on e : exception do
          begin
               txtResultado.Lines.add(DateTimeToStr(now) + ' Error al conectar al servidor SMTP. ' + e.ClassName + ' ' + e.Message);
               MessageDlg('Error al conectar con servidor SMTP: ' + e.Message, mtError, [mbok], 0);
          end;
     end;

     mail := TIdMessage.Create(Self);
     with mail do
     begin
          From.Name                 := txtRemitenteNombre.Text;
          From.Address              := txtRemitenteMail.Text;
          Recipients.EMailAddresses := txtDestinatario.Text;
          CCList.EMailAddresses     := txtCC.Text;
          BccList.EMailAddresses    := txtCCO.Text;
          Subject                   := txtAsunto.Text;

          body.Text := txtMensaje.Text;

          //Cargar ficheros adjuntos seleccionados
          adjuntos := lFicherosAdjuntos.Items;
          for i := 0 to adjuntos.Count - 1 do
          begin
               if FileExists(adjuntos.Strings[i]) then
               begin
                    TIdAttachmentFile.Create(MessageParts, adjuntos.Strings[i])
               end;
          end;
     end;

     try
          idSMTP.Send(mail);
          txtResultado.Lines.add(DateTimeToStr(now) + ' Mensaje enviado correctamente ('+inttostr(x)+')');
          MessageDlg('Mensaje enviado correctamente.', mtInformation, [mbok], 0);
          if idSMTP.Connected then idSMTP.Disconnect;
     except
          on e : exception do
          begin
               txtResultado.Lines.add(DateTimeToStr(now) + ' Error al enviar mensaje. ' + e.ClassName + ' ' + e.Message);
               MessageDlg('Error al enviar e-mail: ' + e.Message, mtError, [mbok], 0);
               if idSMTP.Connected then
                    idSMTP.Disconnect;
          end;
     end;

y el mismo funciona perfectamente en mi maquina, pero no así en las maquinas de los usuarios, le puse unos mensajes (que no inclui en el codigo) para tratar de seguir lo que hacia el programa en una de las maquinas y en la linea :

Código:
 idSMTP.Connect;
es donde se interrumpe el proceso y envía el error que menciono...

tengo la sospecha que las maquinas de usuarios por "alguna extraña razón" no tienen acceso a las librerías : ssleay32.dll y libeay32.dll ; a pesar que están en la misma carpeta que el ejecutable (en mi maquina las librerías están también en Windows/System32) y en las carpetas de otras aplicaciones (aunque al parecer con versiones diferentes (por la fecha y tamaño de los archivos)

lo que pienso probar el dia de hoy es poner las librerías en Windows/System32 y tal vez usar alguna otra versión de las mismas.

Última edición por Casimiro Notevi fecha: 11-02-2021 a las 17:05:04.
Responder Con Cita
  #7  
Antiguo 11-02-2021
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por ArtPortEsp Ver Mensaje
......tal vez usar alguna otra versión de las mismas.
Comienza utilizando la misma versión que tienes en tu maquina de desarrollo.

Saludos
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
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
Envio de correo por gmail D1360666 Delphi para la web 3 29-03-2016 12:47:53
Problema envió correo Taburiente Varios 4 25-11-2013 20:02:43
Envio de correo con y sin autenticacion kharen Internet 4 30-05-2011 18:34:23
Envio de correo Besto Internet 1 22-11-2010 11:01:35
envio de correo srangel Linux 0 22-04-2005 17:44:56


La franja horaria es GMT +2. Ahora son las 15:47:34.


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