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 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Smile Una función para enviar Email en XE10

Saludos amigos, he visto varias implementaciones antiguas de procedimientos para enviar Emails usando Indy, las he probado y no funcionan en XE10, quizás alguno de ustedes tiene una función que trabaje.

Saludos
Responder Con Cita
  #2  
Antiguo 12-04-2016
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
¿Cuales has probado y qué problemas has tenido?
Responder Con Cita
  #3  
Antiguo 12-04-2016
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Desde dónde o con qué cuenta quieres enviar el Mail?
¿Qué error te da?
¿En ejecución o en compilación?
...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Exclamation Hola

Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Cuales has probado y qué problemas has tenido?
He estado intentando hacer que funcione esta:

Código Delphi [-]
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, Vcl.StdCtrls,
  IdServerIOHandler, IdSSL, IdSSLOpenSSL, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack;

Código Delphi [-]
procedure SendEmail(const Recipients: string; const Subject: string; const Body: string);
var
  SMTP: TIdSMTP;
  Email: TIdMessage;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  SMTP := TIdSMTP.Create(nil);
  Email := TIdMessage.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  try
    //SSLHandler.MaxLineAction := maException;
    SSLHandler.SSLOptions.Method := sslvTLSv1;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    SSLHandler.SSLOptions.VerifyMode := [];
    SSLHandler.SSLOptions.VerifyDepth := 0;

    SMTP.IOHandler := SSLHandler;
    SMTP.Host := 'smtp.gmail.com';
    SMTP.Port := 587;
    SMTP.Username := 'darkamerico7@gmail.com';
    SMTP.Password := '------'; //La clave del email
    SMTP.UseTLS := utUseExplicitTLS;

    Email.From.Address := 'darkamerico7@gmail.com';
    Email.Recipients.EmailAddresses := Recipients;
    Email.Subject := Subject;
    Email.Body.Text := Body;

    SMTP.Connect;
    SMTP.Send(Email);
    SMTP.Disconnect;

  finally
    SMTP.Free;
    Email.Free;
    SSLHandler.Free;
  end;
end;

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SendEmail('darkamerico7@gmail.com','Hula','Ciao');
end;

Obtengo el siguiente error:



Saludos
Responder Con Cita
  #5  
Antiguo 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
otro detalle

Cita:
Empezado por darkamerico Ver Mensaje
He estado intentando hacer que funcione esta:

Código Delphi [-]
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdSMTPBase, IdSMTP, IdMessage, IdAttachment, IdAttachmentFile, Vcl.StdCtrls,
  IdServerIOHandler, IdSSL, IdSSLOpenSSL, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack;

Código Delphi [-]
procedure SendEmail(const Recipients: string; const Subject: string; const Body: string);
var
  SMTP: TIdSMTP;
  Email: TIdMessage;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
begin
  SMTP := TIdSMTP.Create(nil);
  Email := TIdMessage.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);

  try
    //SSLHandler.MaxLineAction := maException;
    SSLHandler.SSLOptions.Method := sslvTLSv1;
    SSLHandler.SSLOptions.Mode := sslmUnassigned;
    SSLHandler.SSLOptions.VerifyMode := [];
    SSLHandler.SSLOptions.VerifyDepth := 0;

    SMTP.IOHandler := SSLHandler;
    SMTP.Host := 'smtp.gmail.com';
    SMTP.Port := 587;
    SMTP.Username := 'darkamerico7@gmail.com';
    SMTP.Password := '------'; //La clave del email
    SMTP.UseTLS := utUseExplicitTLS;

    Email.From.Address := 'darkamerico7@gmail.com';
    Email.Recipients.EmailAddresses := Recipients;
    Email.Subject := Subject;
    Email.Body.Text := Body;

    SMTP.Connect;
    SMTP.Send(Email);
    SMTP.Disconnect;

  finally
    SMTP.Free;
    Email.Free;
    SSLHandler.Free;
  end;
end;

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SendEmail('darkamerico7@gmail.com','Hula','Ciao');
end;

Obtengo el siguiente error:



Saludos
Tuve que copiar los archivos: libeay32.dll y ssleay32.dll en el directorio del proyecto.
Responder Con Cita
  #6  
Antiguo 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Hola Neftali

El error es en tiempo de ejecución luego de presionar el botón.
Responder Con Cita
  #7  
Antiguo 12-04-2016
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
Bueno, a veces sirve leer los mensajes de error. Por ejemplo, éste dice:

en donde, al menos en mi caso, después de intentar alguna cosa, se da uno cuenta de que no es un problema tanto de programación sino de lo insoportable que se ha vuelto gmail:

Cita:
Se ha evitado un intento de inicio de sesión.


Hola, XXXX:
Alguien acaba de intentar iniciar sesión en tu cuenta de Google, xxxx@gmail.com, en una aplicación que no cumple los estándares de seguridad modernos.
LineComment Saludos
Responder Con Cita
  #8  
Antiguo 12-04-2016
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
Ahora bien, desconozco como hacer que tu aplicación cumpla esos estándares de seguridad pero en tu cuenta de gmail está la opción "Permitir que las aplicaciones menos seguras accedan a tu cuenta" (indicada en la página en cuestión). Haciendo esto, se puede ya mandar el correo. Claro, está que eso no es lo que recomiendan.

LineComment Saludos
Responder Con Cita
  #9  
Antiguo 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Unhappy Gracias roman

Cita:
Empezado por roman Ver Mensaje
Ahora bien, desconozco como hacer que tu aplicación cumpla esos estándares de seguridad pero en tu cuenta de gmail está la opción "Permitir que las aplicaciones menos seguras accedan a tu cuenta" (indicada en la página en cuestión). Haciendo esto, se puede ya mandar el correo. Claro, está que eso no es lo que recomiendan.

LineComment Saludos
En primer lugar, gracias por contestar amigo; referente al tema en cuestión, me deja aun mas preocupado luego de leer tus comentarios, será que con el tiempo nadie "No Debidamente Autenticado" podrá enviar emails a servidores como google, hotmail, etc..., en otras palabras, que opciones nos quedan, interactuar solamente con servidores privados?

Un Abrazo

Americo
Responder Con Cita
  #10  
Antiguo 12-04-2016
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 225
Poder: 14
darkamerico Va por buen camino
Thumbs up Funcionó!!

Bueno, leyendo el mensaje de error que me indicó roman, fui a la configuracion de mi cuenta de gmail y active la opcion de Recibir Correos de Dispositivos menos seguros y ... eureka, llegó el correo:



Saludos
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
Error de la funcion ShortMonthNames() en XE10 darkamerico OOP 3 31-03-2016 17:26:11
Componente para enviar EMail cancun Internet 19 04-09-2012 23:44:36
Sobre error para enviar email por gmail lduron Varios 8 23-11-2011 00:19:31
Problema para enviar email con indy delphi7 cmena Internet 2 13-10-2005 21:58:55
como puedo hacer para enviar un quick report por email?? merlin Internet 1 14-12-2003 20:24:17


La franja horaria es GMT +2. Ahora son las 09:20:50.


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