Base de conocimientos
1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Resolver un error de correo ($ en la contraseña)
Esta guía detalla las reglas específicas que se deben seguir al utilizar una contraseña que contiene el carácter “dólar” $ para enviar un correo electrónico a través del SMTP 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 venir del tratamiento del carácter$en tu script o archivo de configuración. - Para garantizar una ejecución fiable de sus 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 ocurrir 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 incorrectamente como una variable o un carácter de control.
Aquí hay casos frecuentes en los que no debe usar el carácter $ en una contraseña :
- PowerShell :
$se utiliza para declarar variables. Una contraseña que contenga$puede causar 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 durante el análisis.
Para corregir o prevenir este tipo de error:
- Evite usar el carácter
$en las contraseñas destinadas a ser utilizadas en scripts o sistemas automatizados. - Si debes usarlo absolutamente, siempre enmarca la cadena de contraseña correctamente según el lenguaje:
- En PowerShell: usa comillas simples
'password$Test'si es posible. - En Python: asegúrate de que la cadena esté bien entre comillas simples o dobles, sin interpretación.
- En Bash: escapa el
$con una barra invertida\$.
- En PowerShell: usa comillas simples
Enlace a esta FAQ: