Wissensdatenbank
1000 FAQ, 500 Anleitungen und Lernvideos. Hier gibt es nur Lösungen!
Einen E-Mail-Fehler beheben ($ im Passwort)
Diese Anleitung beschreibt die spezifischen Regeln, die zu beachten sind, wenn ein Passwort mit dem Zeichen „Dollar“ $
verwendet wird, um eine E-Mail über den SMTP Infomaniak in einem Skript (PowerShell, Python, etc.) zu senden.
Vorbemerkung
- Wenn Sie beim Senden einer E-Mail über SMTP einen Authentifizierungsfehler erhalten (z.B.
auth failed
,invalid login or password
), obwohl das Passwort korrekt ist und in einer Software wie Outlook funktioniert, könnte das Problem aus der Verarbeitung des Zeichens$
in Ihrem Skript oder Konfigurationsdatei stammen. - Um eine zuverlässige Ausführung Ihrer SMTP-Skripte zu gewährleisten, wird dringend empfohlen, alle Sonderzeichen mit syntaktischer Bedeutung, insbesondere
$
, in den in Skripten und Konfigurationsdateien verwendeten Passwörtern zu vermeiden. - Das Problem kann auch beim Verbinden mit Datenbanken auftreten.
Regeln zu beachten
Das Zeichen $
ist in vielen Sprachen und Umgebungen ein Sonderzeichen. Wenn es in einem Passwort in einem Skript oder einer Konfigurationsdatei verwendet wird, kann es fälschlicherweise als Variable oder Steuerzeichen interpretiert werden.
Hier sind häufige Fälle, in denen der Zeichen $
nicht in einem Passwort verwendet werden sollte:
- PowerShell :
$
wird verwendet, um Variablen zu deklarieren. Ein Passwort, das$
enthält, kann zu Syntaxfehlern führen oder gekürzt werden. - Bash / Shell (Linux) :
$
ist auch ein Präfix für Variablen. Es kann unerwartete Ersetzungen auslösen. - YAML-Dateien (z.B. Home Assistant, GitHub Actions, Docker Compose):
$
kann als Umgebungsvariable interpretiert werden. - Dateien
.env
,.ini
, oder andere Konfigurationsdateien: Die Tools, die diese Dateien lesen, versuchen möglicherweise, die Variablen zu interpretieren. - Befehle oder URLs mit Authentifizierung: Ein Passwort, das
$
enthält, kann falsch codiert werden oder beim Parsen fehlschlagen.
Um diesen Fehlertyp zu korrigieren oder zu verhindern:
- Vermeiden Sie die Verwendung des Zeichens
$
in Passwörtern, die für Skripte oder automatisierte Systeme bestimmt sind. - Falls Sie es unbedingt verwenden müssen, umrahmen Sie immer die Passwortzeichenfolge korrekt gemäß der Sprache:
- In PowerShell: Verwenden Sie einfache Anführungszeichen
'password$Test'
, wenn möglich. - In Python: Stellen Sie sicher, dass die Zeichenfolge korrekt in einfache oder doppelte Anführungszeichen gesetzt ist, ohne Interpretation.
- In Bash: Entkommen Sie das
$
mit einem Backslash\$
.
- In PowerShell: Verwenden Sie einfache Anführungszeichen
Link zu dieser FAQ: