sábado, 10 de agosto de 2024

1secMail - GUI

En esta ocasión les traigo una app escrita en Gambas. Es una interfaz gráfica que utiliza la API de 1secmail.com.

Citando al sitio (la traducción es mía):

El correo electrónico desechable es un servicio que permite a los usuarios generar (...) y recibir correos electrónicos en esta dirección temporal. Después de cierto período de tiempo (...) se cancelará la dirección. El correo electrónico desechable también se llama correo temporal, correo de 10 minutos, correo electrónico desechable, correo falso o correo basura.

Como se puede observar en el video la app permite crear una cuenta de mail temporal en la cual podemos recibir correos que se almacenarán temporalmente. Muy útil cuando un sitio web requiere registrarse para acceder a un contenido. ¿Cuántas veces uno termina registrándose en un sitio por algún motivo y queda preso del spam que inevitablemente te va a llegar todo el tiempo?

La API se accede a través de GET REQUESTS vía HTTP y el sitio siempre responde con la información en formato json.

Creo que nunca había trabajado con http requests en Gambas ni con el formato JSON, por eso en parte me interesó también este proyecto.

El sitio recibe cualquier mail dirigido a los dominios disponibles.

"1secmail.com, 1secmail.org, 1secmail.net, wwjmp.com, esiix.com, xojxe.com, yoggm.com"

Ni bien se inicia, la APP busca los dominios disponibles utilizando el parámetro "getDomainList" y los despliega para ser utilizados en el combobox. También genera un usuario de manera aleatoria. Según la documentación del sitio existe una manera de generar direcciones aleatorias utilizando el parámetro "genRandomMailbox".

Citando del sitio (la traducción es mía):

Esta función simplemente genera un nombre de usuario aleatorio de 6 a 12 caracteres y le agrega uno de nuestros dominios más recientes.

Pero me pareció que las direcciones son muy confusas y me parecía más prolijo que las app las generara. Lo hace eligiendo un nombre al azar dentro de un array pre-definido y le suma 4 dígitos generados al azar. Creo que el resultado es lo suficientemente random.

Se pueden crear otros usuarios aleatorios haciendo click en el ícono al lado del nombre de usuario. También es posible copiar la dirección creada al portapapeles haciendo doble click sobre la dirección de correo una vez iniciado el servicio.

Quiero hacer dos aclaraciones:

  1. Como expliqué en la entrada anterior "Problemas con Gambas, solución de aquí en adelante" tuve que hacer algunas alteraciones. El programa muestra el mail recibido en formato plano. Si se quiere ver la versión html el programa lo hace guardando una copia del mail en archivo temporal y luego lo abre con el navegador que haya instalado por defecto. El componente WebView me estaba dando muchos problemas. No quiero repetir lo que dije en el post anterior pero espero que sea un bug que se solucione en el futuro.
  2. Tema "descargar adjuntos": Esto fue un dolor de cabeza durante semanas. Reescribí el código muchas veces hasta que durante una epifanía se me dio por probar desde la página directamente, solo para encontrarme con el mismo error en el sitio mismo. A veces los adjuntos no se descargan bien. Suele funcionar bien si los adjuntos son archivos pequeños (sobre todo de texto), pero con imágenes... no siempre funciona. Esto no fue un deal breaker para mi porque este tipo de servicios por lo general no funciona bien con adjuntos (otros sitios similares ni siquiera tienen soporte para descargarlos). Como escribí arriba el objetivo de este tipo de mails temporales son para recibir links de registro principalmente.

Una aclaración extra importante el sitio no hace (y aunque lo hiciera 🤷) referencia a privacidad. Por lo que no lo usaría ni lo recomendaría para recibir información sensible.

Como siempre el código fuente está bastante comentado (hubo mucha reescritura) por lo que para cualquier principiante en Gambas no va tener problema en seguir cada paso. Creo además me estoy llevando mejor con los contenedores.

Recomiendo leer el post anterior: Problemas con Gambas, solución de aquí en adelante

Como siempre les dejo el link al proyecto en GitHub para que puedan descargarlo: https://github.com/mcattani/1secmail_gui

Los invito a dejar comentarios, compartir y si quieren pueden invitándome un cafecito. Estoy con bastante trabajo pero tengo varios proyectos en mira.

Invitame un café en cafecito.app

Saludos!