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\$.
- En PowerShell : utiliza comillas simples
Enlace a esta FAQ:
¿Le ha sido útil esta FAQ?