Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Envio de Mail en BCB 6 con componentes Indy...
Ir a página 1, 2  Siguiente
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Envio de Mail en BCB 6 con componentes Indy... Responder citando

Estoy tratando de hacer una aplicación de envio de correo usando componentes de Indy. En mi proyecto he anexado los siguientes objetos:

Código:

        TButton *Button1;
        TIdMessage *IdMessage1;
        TIdSMTP *IdSMTP1;


y dentro del evento del botón el siguiente código:

Código:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
IdMessage1->Subject = "Hola";
IdMessage1->Body->Text = "Cuerpo del correo";
IdMessage1->From->Address = "llinazoufri@gmail.com";
IdMessage1->Recipients->Add();
IdMessage1->Recipients->Items[0]->Address = "llinazoufri@hotmail.com";
__try
{
IdSMTP1->UserId = "llinazoufri";
IdSMTP1->Password = "xxxxxx";
IdSMTP1->Host = "smtp.gmail.com";
IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->SocksInfo->Authentication = saUsernamePassword;
IdSMTP1->Port=587 ó 465;
IdSMTP1->Connect();
IdSMTP1->Authenticate();
IdSMTP1->Send(IdMessage1);
}
__finally
{
if(IdSMTP1->Connected())
IdSMTP1->Disconnect();
}
}




Al correr mi programa y dar click en el botón me aparece el siguiente error:

530.5.7.0 Must Issue a STARTTLS command first h9sm9521071wxd

Ya he intentado varios correciones en mi código para poder eliminar este error, pero esto no me ha sido posible, espero que alguien me pueda hechar una mano con esto, ya que he buscado todos los ejemplos posibles para esto, hasta uno del foro hecho por Leo al cual el único cambio significativo que le hago es el del puerto pero igual no me funciona. Anexo la ayuda de gmail para correo smtp:

Código:

Configuración de otros clientes de correo
A continuación te proporcionamos la información necesaria para configurar el acceso POP en varios clientes de correo. Si tienes dificultades para ello, te recomendamos que te pongas en contacto con el departamento de atención de tu cliente de correo para obtener instrucciones adicionales.
El servidor de correo entrante (POP3) requiere SSL: pop.gmail.com
Usar SSL: Sí
Puerto: 995 
El servidor de correo saliente (SMTP) requiere TLS: smtp.gmail.com (usar autenticación)
Usar autenticación: Sí
Usar STARTTLS: Sí (en algunos clientes se denomina SSL)
Puerto: 465 ó 587 
Nombre de cuenta:  tu nombre de usuario de Gmail (incluido '@gmail.com'). 
Dirección de correo electrónico:  tu dirección de correo completa de Gmail (username@gmail.com) 
Contraseña:  tu contraseña de Gmail 


Por favor, ten en cuenta que si tu cliente no admite la autenticación SMTP, no tendrás acceso a tus mensajes de Gmail.




Espero alguien me pueda colaborar. Suerte....
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: algo más de claridad sobre el tema... Responder citando

Luego de analizar bien con un amigo, nos dimos cuenta que esto no funciona bien con versiones antiguas del Indy, él lo probó con delphy usando el Indy 10 y funcionó perfectamente, ahora el problema es que las versiones nuevas del Indy para C++ Builder no se encuentran disponibles, se encuentran es versiones para Delphi X.X y para .Net, para builder lo único que encontre fue un archivo .Zip lleno de archivos .PAS y .DPK los cuales no se utilizar. Si alguien sabe de en donde podría yo bajar una version superior a la 6 del Indy compatible con C++ Builder 6 le agradecería la colaboración. Gracias por su atención y suerte......
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Ejemplo de _Leo Responder citando

Estuve buscando en el foro y encontré un ejemplo hecho por _Leo llamado smtp_powersock_bcb4 pero igual me corre el mismo error, no sé que puede pasar con esto, si alguien me pudiese hechar una mano con este problema les agradecería ya que he estado matandome la cabeza y no logro solucionarlo. Suerte.....

Aquí esta el ejemplo de _Leo
http://www.telefonica.net/web/ljfg/temp/smtp_powersock_bcb4.zip
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: otra info, Responder citando

Tambien he probado el programa que se encuentre en C:\Archivos de programa\Borland\CBuilder6\Examples\FastNet\POP3 y no me logra funcionar. Ya saben, si alguien me pudiese colaborar le agradecería mucho la ayuda.
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Como el mismo texto que has puesto dice, las cuentas de GMAIL requieren de SSL (Secure Socket Layer), para esto necesitas las Indy 9 como mínimo, el BCB6 trae la versión 8 que creo que no lo soporta.

Antes que nada debes desinstalar la versión de las Indy que trae instaladas el BCB6 para evitar conflictos, para hacerlo la manera más sencilla es que uses el instalador y selecciones modificar la instalación y busques por ahí Indy, vete abriendo opciones ya que me parece que están un poco escondidas... hace años que hice todo esto en mi instalación y no recuerdo exactamente los detalles para ir explicándotelos paso a paso.

Una vez las tengas desinstaladas ya puedes instalar la versión 9, yo tengo instalada la 9.0.14:

http://www.indyproject.org/Sockets/Download/Files/Indy9.en.aspx

Si tienes problemas siguiendo las instrucciones que se incluyen en el propio .zip de la librería quizás pueda servirte este enlace de Angel, solo debes cambiar todo lo que ponga C5 por C6 (fullc6, etc...):

https://cppbuilder.es/viewtopic.php?t=9380

También debes descargar las DLLs necesarias para que funcionen los componentes SSL, desde:

http://www.indyproject.org/Sockets/SSL.en.aspx

...más concretamente la siguiente:

http://www.intelicom.si/www.nsf/sub?readform&cat=9&lang=en
o
http://indy.fulgan.com/SSL/Archive/indy_openssl096k.zip

(Estas deben estar en el mismo directorio del proyecto que vayas a crear o bien en algún directorio que esté en el PATH de Windows)

Finalmente creamos un proyecto nuevo, añade los siguientes componentes:

TIdSMTP (IdSMTP1)
TIdMessage (IdMessage1)
TIdSSLIOHandlerSocket (IdSSLIOHandlerSocket1)

y el siguiente código en el OnClick de un botón por ejemplo:
Código:
IdMessage1->Subject = "Hola";
IdMessage1->Body->Text = "Cuerpo del correo";
IdMessage1->From->Address = "miCorreo@gmail.com";
IdMessage1->Recipients->Add();
IdMessage1->Recipients->Items[0]->Address = "destino@dominio.com";

IdSMTP1->Username = "usuario@gmail.com";
IdSMTP1->Password = "miClave";
IdSMTP1->Host = "smtp.gmail.com";

IdSSLIOHandlerSocket1->PassThrough = true;
IdSMTP1->IOHandler = IdSSLIOHandlerSocket1;
IdSMTP1->AuthenticationType = atLogin;
IdSMTP1->Connect();
IdSMTP1->SendCmd("STARTTLS");
IdSSLIOHandlerSocket1->PassThrough = false;
IdSMTP1->Authenticate();
IdSMTP1->Send(IdMessage1);

IdSMTP1->Disconnect();
ShowMessage("Mensaje enviado");

En el siguiente enlace tienes el ejecutable creado siguiendo esos pasos por si quieres probar si te funciona antes de hacer cualquier cosa:

http://www.telefonica.net/web/ljfg/temp/gmail_smtp_ssl.zip


Ultima edición por _Leo el Sab 01 May, 2010 10:00 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: gracias... Responder citando

Te cuento _Leo que probé el programa que me enviaste y se queda muerto, me dice que el programa no responde, y me toca cerrarlo por el administrador de tareas de windows; de todas formas voy a probar lo que me dijiste y en la página que me enviaste, esa ya la había mirado antes y solo funciona el vinculo del Indy 9.0.18 Source code distribution. Cuando lo bajo pues me sale una carpeta llena de archivos .pas y demás los cuales no se como ponerlos a correr para poder instalarlo. gracias por todo....
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Revisa que no tengas ningún cortafuegos habilitado por ejemplo y que las DLLs estén en el mismo directorio del ejecutable, a mi me funciona lo que te he mandado, uso Windows XP Pro + SP2. O inténtalo en otra máquina para confirmar que no sea un problema de tu instalación.

La versión 9.0.18 no incluye los archivos .bat (fullc6.bat), y efectivamente parece que están rotos los enlaces de las versiones anteriores. Pero buscando en Google por el nombre del archivo que me interesa: "Indy_9_00_14_src.zip" que es la que yo tengo instalada, me sale entre otros enlaces el siguiente, que parece que si funciona:

http://www.indyproject.org/downloads/Indy_9_00_14_src.zip

Incluye un archivo que explica como se instala (ManualInstall.txt), también puedes ver el enlace anterior de Angel que lo explica, solo cambia FULLC5 por FULLC6, C5 por C6, etc...
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: ok.. Responder citando

ya descargué el archivo, y abrí el archivo llamado Fullc6, el cual me genera una carpeta llamada C6, luego hago lo que dice Angel:

Cita:

1. Descomprime el fichero que descargues.
2. Ejecuta el fichero Fullc5.bat. Te creará una carpeta C5 dentro de la que tiene los ficheros descomprimidos.
3. Abre Builder y selecciona Component > Install packages, y seleccione Add en la part que indica Design packages
4. Situate en la carpeta C5 que se ha creado, selecciona el fichero dclIndy50.bpl y ya tendrás isntalados los componentes Indy.


pero me sale los siguientes errores:

No se encuentra el punto de entrada del procedimiento @Idresourcestrings@RsBindingAny en la biblioteca de vínculos dinámicos Indy60.bpl

No se porque pasa esto porque yo desinstalé el indy que venía con el builder, o será que quedó algo en el disco que me está generando este error. Espero me puedas colaborar _Leo. Mil gracias.
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: lo logré luego de mil años......... Responder citando

Ya está, lo que hice fue buscar archivos que se llamaran por Indy y encontré que habian quedado algunos guardados, 1 en el system32 y 2 en el bin del builder, luego de esto los borré y seguí el procedimiento que viene en el ejemplo (también el traducido de Angel) y listo, ya quedaron los componentes instalados y quedan estas cinco pestañas instaladas como dice Angel:

Indy Clients
Indy Servers
Indy Intercepts
Indy I/O Handlers
Indi Misc


Gracias a _Leo por su ayuda.Suerte.........
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: ok... Responder citando

Bueno tengo que revisar lo que me dices del cortafuegos ya que instale todo e hize lo que me dijiste y me pasa igual q en tu programa, me sale es una ventana del Symantec que error 1003,14, estoy revisando a ver que quiere decir esto, voy a seguir en estas y te estoy comentando, chau...
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

Tienes algún antivirus o cortafuegos Norton (Symantec) instalado supongo, prueba a deshabilitarlo o si tienes una versión vieja a actualizarte a una mas nueva.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: ok... Responder citando

Ya estuve revisando _Leo e hice lo que aparece en la pagina de symantec:

Cita:

Aparece el mensaje de error: "Una conexión cifrada de correo electrónico ha sido detectada . . .(1003,14 ó 1003,15)"

Situación:
Al enviar o recibir mensajes de correo electrónico usted ve el mensaje "se ha detectado una conexión cifrada del correo electrónico. Vea por favor la Ayuda para más información sobre cómo transmitir correo electrónico cifrado". En la esquina inferior izquierda del mensaje de error, puede que vea los números 1003,14 o 1003,15.


Solución:



--------------------------------------------------------------------------------
Antes de comenzar:
¿Usted utiliza un producto de empresarial, tal como Symantec AntiVirus Corporate Edition? Si es así, pase a la sección Información Técnica al final de este documento.
Si usted utiliza un producto para usuario doméstico, tal como Norton AntiVirus, continúe la lectura.

--------------------------------------------------------------------------------


Norton AntiVirus, Norton Internet Security y Norton AntiSpam ofrecen soporte solamente a los clientes de correo electrónicos que utilizan los puertos predeterminados 110 (POP3) y 25 (SMTP). Clientes POP3 que utilizan conexiones seguras (SSL) no están soportados. Este mensaje de error se presenta cuando su Proveedor de servicios de internet (ISP) utiliza SSL (Secure Socket Layer). Norton AntiVirus, Norton Internet Security y Norton AntiSpam no pueden analizar mensajes de correo enviados por SSL.

Para corregir este error, comience por la "Sección 1: Desactive el mensaje de alerta" y siga las instrucciones ahí contenidas.


Sección 1: Desactive el mensaje de alerta:
Dado que su programa Symantec no ofrece soporte a conexiones seguras para protección de correo electrónico, usted deberá desactivar el mensaje de alerta.

Para desactivar el mensaje de alerta

En el cuadro de diálogo del Análisis de correo electrónico, haga clic en No mostrar de nuevo esta pantalla > Aceptar.

Si le es posible enviar mensajes de correo, ha terminado con esta solución.
Si usted no puede enviar y recibir correo electrónico, vaya en la Sección 2.


Sección 2: Cómo desactivar el análisis de correo electrónico
Al desactivar el análisis de correos electrónicos le será posible enviar su mensajes. Para más información referente a su seguridad, teniendo desactivado el análisis de correo electrónico de Norton AntiVirus, por favor vea la sección “No tengo activado el análisis de correo electrónico de Norton AntiVirus” dentro de la Información técnica de este documento.

Para desactivar el análisis de correo electrónico
Siga las instrucciones que correspondan a su producto.
Para desactivar el análisis de correo electrónico en Norton AntiVirus, por favor consulte el documento Turning on or turning off email scanning in Norton AntiVirus.
Para desactivar el análisis de correo electrónico en Norton Internet Security, por favor consulte el documento Disabling email scanning in Norton Internet Security.

Información Técnica:
Symantec AntiVirus Corporate Edition
Para obtener instrucciones detalladas de como desactivar el análisis de correo electrónico en Symantec AntiVirus, por favor lea el documento Message: "An encrypted email connection has been detected . . . " while sending or receiving email after installing Symantec AntiVirus Corporate Edition 9.x

No tengo activado el análisis de correo electrónico de Norton AntiVirus
Aunque desactive el análisis de correo electrónico, su equipo se mantiene protegido en contra de virus. Auto-Protect de Norton AntiVirus analizará los archivos adjuntos de sus mensajes de correo en el momento que usted los guarde en su disco duro. Si desactiva el análisis de correo electrónico, asegúrese de que Auto-Protect esté activo y después ejecute LiveUpdate de manera regular para que Auto-Protect pueda funcionar con las actualizaciones más recientes. Auto-Protect le proporciona protección contra virus en tiempo real para cualquier acción relacionada con sus archivos de trabajo, incluyendo Internet y de manera automática analizará los archivos adjuntos en el momento que estos son accesados.


pero igual haciendo todo ese cuento me sigue presentando el mismo problema, de todas formas voy a tratar de probarlo en otro pc a ver que pasa ya que este antivirus me tiene loco cada vez que me quiero conectar con sockets o los puertos u otra cosa me saca el famosísimo letrerito que no me deja hacer nada. Gracias por tu atención.
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: más.... Responder citando

Luego de molestar mucho, desactive todo lo de symantec para que no me molestara más la vida y el programa al fin funcionó, lo raro entonces es ¿porqué en la ayuda de symantec lo ponen a uno a todar toda esa vuelta si al final de cuentas da lo mismo?, esta será una buena pregunta para redirigirla a los que hacen la ayuda allá. Muchas gracias a _Leo por su valisoso tiempo dedicado a ayudarme a solucionar este problema. Suerte a todos......
_________________
Entre más sé, sé que nada sé
----------------------------------
Miguel Angel Torres Arredondo
Siegen - Deutschland
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Repetición de envio Responder citando

He provado enviar según lo aqui explicado y perfecto. Gracias ante todo.
Pero al intentar enviar por segunda vez, aparece el siguiente error:
Código:

EidProtocolReplyError 5.5.2 Syntax Error 39sm898072ugb


He visto que en el ejemplo de _LEO tambien aparece el error.

Como evitar-lo?


Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Una consulta, alguien posee el codigo fuente del programa smtp_powersock_bcb4 que han puesto para bajar, ya que dicho programa funciona a
la perfeccion, pero no he podido recrearlo. (por lo que dice Miguel Angel Torres es un ejemplo de _Leo)

un abrazo
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.