Base di conoscenze

1 000 FAQ, 500 tutorial e video esplicativi. Qui ci sono delle soluzioni!

Risolvere un errore di posta elettronica ($ nella password)

Questa guida dettaglia le regole specifiche da rispettare durante l'utilizzo di una password contenente il carattere “dollar” $ per inviare un'e-mail tramite il SMTP Infomaniak in uno script (PowerShell, Python, ecc.).

 

Premessa

  • Se durante l'invio di un'e-mail tramite SMTP si ottiene un errore di autenticazione (ad esempio auth failed, invalid login or password) mentre la password è corretta e funziona in un software come Outlook, il problema potrebbe derivare dal trattamento del carattere $ nel tuo script o file di configurazione.
  • Per garantire un'esecuzione affidabile dei tuoi script SMTP, è fortemente consigliato evitare qualsiasi carattere speciale con significato sintattico, in particolare $, nelle password utilizzate negli script e nei file di configurazione.
  • Il problema può verificarsi anche per connettersi ai database.

 

Regole da rispettare

Il carattere $ è un simbolo speciale in molti linguaggi e ambienti. Quando viene utilizzato in una password in uno script o in un file di configurazione, può essere interpretato erroneamente come una variabile o un carattere di controllo.

Ecco alcuni casi frequenti in cui non è consigliabile utilizzare il carattere $ in una password :

  • PowerShell : $ viene utilizzato per dichiarare variabili. Una password contenente $ può provocare errori di sintassi o essere troncata.
  • Bash / Shell (Linux) : $ è anche un prefisso di variabile. Può innescare sostituzioni inattese.
  • File YAML (ad esempio Home Assistant, GitHub Actions, Docker Compose) : $ può essere interpretato come una variabile di ambiente.
  • File .env, .ini, o altri file di configurazione : gli strumenti che leggono questi file possono tentare di interpretare le variabili.
  • Comandi o URL con autenticazione : una password contenente $ può essere codificata in modo errato o fallire durante l'analisi.

 

Per correggere o prevenire questo tipo di errore:

  • Evita di utilizzare il carattere $ nelle password destinate all'uso in script o sistemi automatizzati.
  • Se devi assolutamente utilizzarlo, assicurati sempre che la stringa della password sia correttamente delimitata in base al linguaggio:
    • In PowerShell: utilizza le virgolette semplici 'password$Test' se possibile.
    • In Python: assicurati che la stringa sia tra virgolette semplici o doppie, senza interpretazione.
    • In Bash: scappa il $ con un antislash \$.

Questa FAQ è stata utile?