Base de conocimientos

1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!

Resolver un error de correo electrónico ($ en la contraseña)

Esta guía detalla las reglas específicas a seguir al utilizar una contraseña que contiene el carácter “dólar” $ para enviar un correo electrónico a través del SMTP de Infomaniak en un script (PowerShell, Python, etc.).

 

Prólogo

  • Si al enviar un correo electrónico a través de SMTP obtienes un error de autenticación (por ejemplo auth failed, invalid login or password) aunque la contraseña sea correcta y funcione en un software como Outlook, el problema puede deberse al tratamiento del carácter $ en tu script o archivo de configuración.
  • Para garantizar una ejecución fiable de tus scripts SMTP, se recomienda encarecidamente evitar cualquier carácter especial que tenga un significado sintáctico, en particular $, en las contraseñas utilizadas en los scripts y archivos de configuración.
  • El problema también puede surgir al conectarse a las bases de datos.

 

Reglas a seguir

El carácter $ es un símbolo especial en muchos lenguajes y entornos. Cuando se utiliza en una contraseña en un script o archivo de configuración, puede ser interpretado erróneamente como una variable o un carácter de control.

Aquí tienes algunos casos frecuentes en los que no debes utilizar el carácter $ en una contraseña :

  • PowerShell : $ se utiliza para declarar variables. Una contraseña que contenga $ puede provocar errores de sintaxis o ser truncada.
  • Bash / Shell (Linux) : $ también es un prefijo de variable. Puede desencadenar sustituciones inesperadas.
  • Archivos YAML (por ejemplo, Home Assistant, GitHub Actions, Docker Compose) : $ puede ser interpretado como una variable de entorno.
  • Archivos .env, .ini, o cualquier otro archivo de configuración : las herramientas que leen estos archivos pueden intentar interpretar las variables.
  • Comandos o URL con autenticación : una contraseña que contenga $ puede estar mal codificada o fallar en el análisis.

 

Para corregir o prevenir este tipo de error :

  • Evita utilizar el carácter $ en las contraseñas destinadas a ser utilizadas en scripts o sistemas automatizados.
  • Si debes utilizarlo, siempre encierra correctamente la cadena de la contraseña según el lenguaje :
    • En PowerShell : utiliza comillas simples 'password$Test' si es posible.
    • En Python : asegúrate de que la cadena esté entre comillas simples o dobles, sin interpretación.
    • En Bash : escapa el $ con una barra invertida \$.

¿Le ha sido útil esta FAQ?