Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-08-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Gracias Antonio pero échale un vistazo a esto:


https://support.google.com/a/answer/14114704?hl=es


https://workspaceupdates.googleblog....s-support.html


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #2  
Antiguo 27-08-2024
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
" ... Ya no utilizarás una contraseña para acceder (con la excepción de las contraseñas de aplicación). ... "
Responder Con Cita
  #3  
Antiguo 27-08-2024
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 4.214
Poder: 24
newtron Va camino a la fama
Gracias Antonio. No me había percatado de ese detalle aunque la verdad es que no sé si fiarme mucho.


A ver si llega ese día, todo se bloquea y nos pilla en "bragas" porque usar oauth no parece fácil.


Saludos.
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 27-08-2024
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
"Contraseña de aplicación" sigue funcionando, lo uso desde hace años.
Seguramente con el tiempo lo irán cambiando también, pero de momento no hay fechas que yo sepa.
Responder Con Cita
  #5  
Antiguo 11-10-2024
iMia iMia is offline
Miembro
 
Registrado: jul 2010
Posts: 147
Poder: 16
iMia Va por buen camino
hola a todos,
refloto el tema, porque en outlook, no me funcionan las contraseñas de aplicación.
El caso es que en GMail funciona perfectamente.
Outlook permite crear contraseñas de aplicación, previa activación de la verificación en dos pasos, pero no deja indicar para qué aplicación; simplemente te crea una contraseña, sin indicar el tipo de aplicación ni a qué tiene acceso.

Y aunque la pongas esa contraseña en los datos del smtp, no funciona. Sigue apareciendo el error: 535 5.7.139 Authentication unsuccessful, basic authentication is disabled
SMTP: smtp-mail.outlook.com - También he probado : smtp.office365.com
STARTTLS on
port: 587
user: [email protected]
pass: yyy
Responder Con Cita
  #6  
Antiguo 11-10-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 360
Poder: 3
navbuoy Va por buen camino
Le pregunte a mi querido ChatGPT y me dice:

Implementar el envío de correos electrónicos con OAuth2 en Delphi utilizando Indy10 implica varios pasos, incluyendo la configuración de OAuth2, el uso de las bibliotecas de Indy para enviar correos y la autenticación con el token de acceso. A continuación, te proporcionaré una guía paso a paso sobre cómo hacerlo.

Requisitos Previos
Delphi con Indy10: Asegúrate de que tienes Delphi instalado con las bibliotecas Indy10 disponibles.
Cuenta de Correo: Necesitarás una cuenta de correo electrónico que soporte OAuth2 (por ejemplo, Gmail, Outlook).
Bibliotecas Adicionales: Es posible que necesites las bibliotecas de OAuth2, como IdOAuth2 de Indy.
Paso 1: Configuración de OAuth2
Para usar OAuth2, necesitas registrar tu aplicación en la consola de desarrolladores de tu proveedor de correo electrónico (por ejemplo, Google). Esto te proporcionará:

Client ID
Client Secret
Redirect URI
Paso 2: Obtener el Token de Acceso
Para obtener un token de acceso, deberás realizar el flujo de autorización de OAuth2. Aquí te muestro cómo hacerlo utilizando una función de ejemplo. El proceso de obtención del token puede variar dependiendo del proveedor de servicios de correo electrónico.

Ejemplo de obtención del token de acceso:

Código:
uses
  IdHTTP, IdSSL, IdSSLOpenSSL, System.JSON;

function GetAccessToken(ClientID, ClientSecret, RefreshToken: string): string;
var
  IdHTTP: TIdHTTP;
  IdSSL: TIdSSLIOHandlerSocketOpenSSL;
  Params: TStringList;
  Response: string;
  JSONResponse: TJSONObject;
begin
  IdHTTP := TIdHTTP.Create(nil);
  IdSSL := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  Params := TStringList.Create;
  try
    IdHTTP.IOHandler := IdSSL;

    // Establecer los parámetros para la solicitud de token
    Params.Add('client_id=' + ClientID);
    Params.Add('client_secret=' + ClientSecret);
    Params.Add('refresh_token=' + RefreshToken);
    Params.Add('grant_type=refresh_token');

    // Hacer la solicitud POST para obtener el token
    Response := IdHTTP.Post('https://oauth2.googleapis.com/token', Params);
    JSONResponse := TJSONObject.ParseJSONValue(Response) as TJSONObject;

    try
      Result := JSONResponse.GetValue('access_token').Value; // Extraer el token
    finally
      JSONResponse.Free;
    end;
  finally
    Params.Free;
    IdSSL.Free;
    IdHTTP.Free;
  end;
end;
Paso 3: Enviar Correo Electrónico con Indy10
Una vez que hayas obtenido el token de acceso, puedes usar Indy10 para enviar correos electrónicos.

Ejemplo de envío de correo:

Código:
uses
  IdSMTP, IdMessage;

procedure SendEmail(EmailAddress, Subject, Body, AccessToken: string);
var
  SMTP: TIdSMTP;
  Msg: TIdMessage;
begin
  SMTP := TIdSMTP.Create(nil);
  Msg := TIdMessage.Create(nil);
  try
    // Configurar SMTP
    SMTP.Host := 'smtp.gmail.com'; // Cambia según tu proveedor
    SMTP.Port := 587;
    SMTP.UseTLS := utUseExplicitTLS;
    
    // Establecer las credenciales con el token de acceso
    SMTP.AuthType := atOAuth2;
    SMTP.OAuth2.ClientID := '<Tu Client ID>';
    SMTP.OAuth2.ClientSecret := '<Tu Client Secret>';
    SMTP.OAuth2.AccessToken := AccessToken;
    SMTP.Username := EmailAddress; // La dirección de correo electrónico
    
    // Crear el mensaje
    Msg.From.Address := EmailAddress;
    Msg.Recipients.Add.Email := EmailAddress; // Cambia según el destinatario
    Msg.Subject := Subject;
    Msg.Body.Text := Body;
    
    // Conectar y enviar el mensaje
    SMTP.Connect;
    try
      SMTP.Send(Msg);
    finally
      SMTP.Disconnect;
    end;
  finally
    Msg.Free;
    SMTP.Free;
  end;
end;

Paso 4: Integrar Todo

Ahora puedes integrar los pasos anteriores en tu aplicación. Aquí tienes un ejemplo de cómo podrías usar las funciones:

Código:
procedure TForm1.btnSendEmailClick(Sender: TObject);
var
  AccessToken: string;
begin
  // Obtén el token de acceso
  AccessToken := GetAccessToken('<Tu Client ID>', '<Tu Client Secret>', '<Tu Refresh Token>');
  
  // Envía el correo
  SendEmail('<[email protected]>', 'Asunto', 'Cuerpo del mensaje', AccessToken);
end;
Consideraciones Finales
Manejo de Errores: Asegúrate de implementar el manejo de errores en el código de producción.
Seguridad: Mantén tus credenciales seguras y no las incluyas directamente en el código.
Bibliotecas de Dependencia: Asegúrate de que las bibliotecas de Indy y las dependencias de SSL estén correctamente configuradas en tu proyecto.
Pruebas: Realiza pruebas exhaustivas para asegurarte de que el flujo de autorización y el envío de correos funcionen correctamente.
Con esto deberías poder enviar correos electrónicos utilizando Indy10 y OAuth2 en Delphi.
Responder Con Cita
  #7  
Antiguo 12-10-2024
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.669
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Tengo un programa en funcionamiento que usa estos parámetros, prueba con ellos:
Cita:
TLS = utUseRequireTLS
TLSver = sslvSSLv23
puerto=587
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problemas con SMTP en smtp.office365.com gguerrini Internet 5 14-10-2021 16:28:26
Envio de correos SIN SSL Rc96 Internet 4 15-09-2017 19:42:58
?Envio de correos ? jasmad Lazarus, FreePascal, Kylix, etc. 16 02-10-2012 15:45:02
servidor de correos SMTP metroyd Varios 0 21-10-2007 23:57:36
Envio de Correos Masivo Esau Internet 2 10-04-2007 01:46:11


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


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi