Más allá de lo que ves

sábado, 24 de julio de 2021

Sendgrid - Envío de correo electrónico de forma rápida y sencilla

Analizando algún servicio que permita enviar email de forma sencilla desde una app,  api rest o similar he hecho búsquedas en Google del tipo "Amazon SES vs ...", me ha salido SendGrid y la he estado "curioseando". Te dejan probar el servicio de forma gratuita sin necesidad de tarjetas ni nada similar así que digo voy a matar el gusanillo de trastear. Una vez me he registrado y activado mi cuenta he comenzado el periplo para testearlo.


He añadido las entradas DNS necesarias a montesinos.org.es para que sendgrid pueda enviar correos usando el dominio montesinos.org.es, sin cuenta de correo existente ojo! y muy importante.

image.png

Una vez autenticado el dominio, he creado un ApiKey para usar el servicio 

image.png

Tras esto he visto que se pueden crear plantillas dinámicas, hombre !! me voy a crear dos, una en castellano y otra su versión en catalán

image.png

Puestos a probar, vamos a probar si puedo enviar de forma rápida y sencilla desde código un correo, no desde el propio sendgrid. Hay dos formas, la recomendada usando el api y la más sencilla usando SMTP Relay, por cual me he decantado para las pruebas?


image.png


Correcto! Web API, aunque seguramente si en tu código ya usas un servicio smtp para el envío te interesará  valorar la opción para enviar desde SMTP Relay, pues imagino que el impacto será mucho menor.

Con qué lenguaje voy a hacer esa prueba? pues ya que estamos probando, sobre linux , en fin... algo rapidito y que cambie respecto a lo que ya conozco, por ejemplo... Python, pero para gustos colores,  java, node, ruby, c#, php...:


image.png


Aquí el código de python para tener una plantilla dinámica que da la bienvenida en el registro en un servicio a un usuario y realiza el bind de variables como el nombre del usuario:

image.png

Como se puede ver en el código envía desde sac@montesinos.org.es cuenta que no existe en mi dominio y que no he creado en ningún servicio de correo

Resultado de un envío en catalán, me gusta:

image.png

y de un envío en castellano, también me gusta:

image.png
La guinda del pastel;

Información de seguimiento, envíos, aperturas, por día, semana, mes...


image.png

Envíos realizados a una dirección en un periodo concreto:

image.png


Información del envío realizado...

image.png

Información avanzada del email:

image.png

Dependerá del volumen de correos que tengas que enviar pero sin duda es una opción más que interesante y a tener en cuenta para simplificar el envío de correo desde tus desarrollos.

El envío utilizando la opción SMTP Relay es igual de sencilla.

Repositorio de Github donde puedes consultar el código de ambos ejemplos, usando API Rest y SMTP Relay.

La siguiente prueba es usar Amazon SES, para otra entrada...

domingo, 6 de junio de 2021

Linux no responde tras suspender el equipo [Solventado]

Llevo casi un año con problemas en mi Dell Inspiron 15 Serie 5000, tras una actualización del sistema operativo, tenía instalado Ubuntu 19, cada vez que estaba trabajando y bajaba la tapa del portátil, se bloqueaba la sesión... al volver a usarlo el sistema operativo no se recuperaba, no arrancaba, se quedaba la pantalla en negro y la única forma de utilizarlo era forzar un reinicio. 

Durante todo este tiempo he buscado en Google que podía estar ocurriendo para intentar solucionarlo, he actualizado la Bios a su última versión, instalado y desinstalado muchas distribuciones de Linux. Si bien con la instalación base todo iba bien, en cuanto las actualizaba volvía a ocurrir lo mismo, he modificado, instalado... drivers de Nvidia, aplicado cambios en el Grub... todo ello sin éxito.

Cansado de probar cosas me resigne a pensar que igual tendría que usar solo la parte de Windows en mi portátil, instalé elementary OS y me limité a usarlo sabiendo que cada vez que lo tuviera que volver a usar tendría que forzar el reinicio. 

Una noche volví a probar suerte y busqué en Google por si encontraba algo, "dell linux crash resume", "nvidia problems linux dell"... en una de las búsquedas acabé en un enlace que me llevó a otro donde se indicaba "Como arrelgar la supensión con el driver de NVIDIA en Ubuntu y además reducir el consumo energético" como en tantas otras ocasiones me decidí a probar; mi sorpresa fue que en este caso si que funcionó !!!

A continuación indico los sencillos pasos que se deben dar para modificar el Grub y solucionar el problema al menos en mi caso, no he probado con otros sistemas operativos pero en mi Elementary no he tenido que volver a reiniciar tras una suspensión, bloqueo... del portátil.

Desde una ventana de terminal ejecutamos:
$ sudo nano /etc/default/grub

Localizamos la línea que contiene el valor GRUB_CMDLINE_LINUX_DEFAULT, es suficiente con modificarla y añadir al final "pci_aspm=off", en mi caso la línea queda como sigue;
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash pcie_aspm=off"

Guardas los cambios y cierras el editor, actualizas el grub y reinicias. Voilà!! problema solucionado !!!
$ sudo update-grub
$ reboot

Referencias

domingo, 29 de diciembre de 2019

Cansado de recordar tus credenciales git en Visual Studio Code?

Hola !, si has llegado a este post, es por que estás cansado de introducir tus credenciales git cuando desde Visutal Studio Code vuelcas tus cambios a repositorio remoto Github, Gitlab...

Para evitar esto es sencillo no tienes más que utlizar Credential Helper de Git.

En una consola de terminal introduce:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
El tiempo por defecto de cache es de 15 minutos, pero lo podemos modificar, en mi caso lo he puesto en 5 horas (no creo que esté más tiempo conectado y probando, Solidity, Angular, React...):

Para establecer 1 hora no tienes más que ejecutar;
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
Espero que te sea útil.


Referencias:

Using Version Control in VS Code
Caching your GitHub password in Git

viernes, 29 de noviembre de 2019

Instalar Citrix Receiver en Ubuntu 19

El caso que nos ocupa en este post, ha sido la necesidad de instalar Citrix Receiver sobre Ubuntu 19.10.

Desde el siguiente enlace podemos acceder a la descarga de los paquetes. En mi caso he instalado la opción Full Package y la de soporte para USB.

Una vez descargado reporta error por que le faltan dependencias:


Para solventar esto vamos a necesitar instalar 3 dependencias concretas que necesitamos descargar desde los siguientes enlaces;

Una vez descargadas podemos comenzar con la instalación:

sudo dpkg -i libicu60_60.2-3ubuntu3_amd64.deb
sudo dpkg -i libjavascriptcoregtk-1.0-0_2.4.11-3ubuntu3_amd64.deb
sudo dpkg -i libwebkitgtk-1.0-0_2.4.11-3ubuntu3_amd64.deb
sudo dpkg -i icaclient_19.3.0.5_amd64.deb ctxusb_2.7.20_amd64.deb

Una vez instalado ya podemos acceder.

Si obtienes errores de conexión de certificado -> deberás crear un enlace simbólico a los certificados de Citrix. Para Firefox no tendrás más que ejecutar:

sudo ln -s /usr/share/ca-certificates/mozilla/*    
    /opt/Citrix/ICAClient/keystore/cacerts/
sudo c_rehash /opt/Citrix/ICAClient/keystore/cacerts/

Muchas gracias a nicoctx por  su respuesta en el siguiente recurso

domingo, 24 de noviembre de 2019

Kernel driver not installed (rc=-1908) [SOLVENTADO]

Cuanto tiempo sin escribir una entrada !!! Voy a intentar retomar la buena costumbre de recoger todas las cuestiones que me voy encontrando por el camino y que seguro pueden ayudar a otros, que como yo, pasen por la misma situación.

En este caso la cuestión trata sobre Linux. Recientemente adquirí un portátil Dell Inspiron con su licencia Windows 10 Profesional correspondiente pero acostumbrado a Mac como estoy en el curro y queriendo "jugar y aprender" cuestiones relacionadas con Blockchain me decante por instalar una distribución Linux. Tras consultar con verdaderos gurus de la materia, finalmente me recomendaron instalar una Ubuntu y elegí la 19.

Si ya instalar en el Dell la distribución Ubuntu fue una travesía algo tortuosa que al final como no podía ser de otra manera el fin de semana pasado acabo en éxito. El motivo de recoger este post ha sido precistamente otro escollo en el camino, concretamente al intentar en este caso correr una máquina VirtualBox en la que poder ejecutar por ejemplo un entorno de desarrollo de la red blockchain de Alastria.

Me he encontrado con el siguiente error:

Kernel driver not installed (rc=-1908)

The VirtualBox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please install virtualbox-dkms package and load the kernel module by executing


'modprobe vboxdrv'

as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.


where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The support driver is not installed. On linux, open returned ENOENT. 



Tras buscar en Google y probar diferentes recursos, la solución ha sido; reinstalar virtualbox-dkms con el comando;

sudo apt-get install --reinstall virtualbox-dkms

Este comando te solicitará una clave para firmar los componentes necesarios, fcuando inaliza el asistente te solicitará un pass que debes recordar, ya que en el siguiente inicio del equipo te la solicitará para acabar de confirmar la configuración.

Con esto se ha solventado el error y ya puedo iniciar la máquina virtual.

Tiene guasa no?, Ubuntu 16 sobre Ubuntu 19...