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: