![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Envío de correos SMTP de office365 con Indy10
Hola,
Desarrollamos una aplicación de escritorio (C++Builder 10.1) que usa los componentes Indy incluidos en dicha versión para el envío de emails. El problema es que los clientes que tienen el correo con office365 cada vez tienen más problemas con los envíos y tienen que bajar la seguridad de su cuenta (y me temo que pronto no podrán enviar más correos de la manera tradicional). Al parecer hay dos alternativas: implementar OAuth2 (no parece algo sencillo en una aplicación de escritorio) o utilizar la API de Microsoft Graph. Alguna solución comercial tal vez? Mi pregunta es, hay alguien con aplicaciones de escritorio en C++ Builder o Delphi con el mismo problema? Alguien que me pueda informar sobre cómo lo han solucionado? Agradezco cualquier ayuda que me ayude a seguir adelante. Gracias. |
#2
|
||||
|
||||
Hola a todos,
Diré, no como la solución, pero, como una posible solución (porque, acaso la solución sería una implementación en Delphi sin más), que acaso podría pensarse en usar un "servidor / puente", es decir, supongamos que tenemos un hosting que permite ejecutar PHP (lo que es común), entonces, podríamos implementar acaso el envío del correo en un script PHP, que, recibiese los argumentos necesarios desde una llamada que se hiciese desde nuestra aplicación Delphi. La idea es dejar al servidor (PHP o cualquier otro lenguaje) lo que es el envío del correo, mientras que, nuestra aplicación Delphi, lo "único" que tendría que hacer sería una llamada HTTP POST al script de nuestro servidor. Este llevaría a cabo la tarea y proporcionaría la respuesta necesaria a nuestra aplicación: "Ok" (Se envío el correo), "Error: Algún error", etc. Ya digo que no es la solución, que, sería implementar el asunto en la propia aplicación Delphi, pero, en fin, lo dejo caer por si pudiera resultar útil en un momento dado. P.S. Acaso la implementación de "OAuth2" (por ejemplo) sería más sencilla desde el servidor, aunque, insisto en que acaso la verdadera solución sería pegarse con eso en la propia aplicación Delphi, pues, digo yo que debe ser posible hacer algo así. Seguro que algún compañero nos da una mejor pista o solución para implementar el asunto en la propia aplicación Delphi. |
#3
|
||||
|
||||
El problema que le veo a tu propuesta es que nuestra aplicación está distribuida en unos 100 clientes; no veo factible configurarle el servidor a cada uno. Por otra parte, si usásemos nuestro servidor, cada vez que tuviesen un problema con el envío nos llamarían a nosotros, además de que en los correos se maneja información confidencial (contrato de la LPD con cada clientes)...
En fin, como bien dices, lo ideal sería implementarlo en la propia aplicación. Gracias por tu respuesta. |
#4
|
||||
|
||||
Hola a todos,
La verdad es que lleva razón. Es decir, podría acaso haberme ahorrado la respuesta: no es lo que se pretendía hacer, no ofrece una solución, en definitiva, debería haberme ahorrado dicha respuesta. ¡Pido disculpas! |
#5
|
||||
|
||||
Cita:
Un saludo y buen fin de semana. |
#6
|
||||
|
||||
Hola a todos,
En este hilo de Delphi Praxis, donde se trata, justamente, de lo que se trata en este hilo: "Indy + OAuth2", participa el gran Remy Lebeau, y, parece que Indy no soportaría actualmente OAuth2, aunque, se propone alguna posibilidad: pero no se implementa, simplemente se sugiere / propone. En dicho hilo, un compañero "Delphiano", apunta a este proyecto de Github: creo que podría servirle, de modo que, puede echarle un vistazo a ver qué tal. Sino me equivoco (no lo he mirado con detenimiento) lo que este proyecto hace es, precisamente, lo que Remy Lebeau propone, para dar a Indy soporte para OAuth2. ![]() Última edición por dec fecha: 02-10-2023 a las 09:47:32. |
#7
|
|||
|
|||
Mediante esta función y las utilidades clever (imagino que se puede hacer igual con Indy) obtengo un token de acceso valido para office365
pero luego no hay manera de conectarme por IMAP o enviar algún email, siempre recibo "a0002 NO AUTHENTICATE failed" ¿alguna idea? |
#8
|
||||
|
||||
Probé con 2 proveedores de correo que usan este sistema y debería ser lo mismo para Outlook.
Debes configurar el cliente como ha sido siempre. Solo que en vez de usar la contraseña del email, debes usar una contraseña de aplicación y usar esta. La puedes generar aquí, con el user y pass respectivo https://support.microsoft.com/es-es/...a-a6f2979a7944 Última edición por MAXIUM fecha: Hace 3 Semanas a las 19:33:50. |
#9
|
||||
|
||||
Efectivamente, ya se ha recomendado unos mensajes más arriba que use la contraseña de aplicación.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
![]() |
||||
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 |
![]() |
|