Sonderzeichen im SSMTP-Passwort

Sonderzeichen im SSMTP-Passwort

Mein Gmail-Passwort enthält +und Zeichen. Wie kann ich es konfigurieren , um Autorisierungsfehler zu vermeiden?=ssmtp

Mein /etc/ssmtp/ssmtp.conf:

[email protected]
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=1234+=5678
FromLineOverride=YES
UseTLS=YES
hostname=skynet

Wie laufe ich ssmtp:

$ echo "email content" | mail -s "email subject" [email protected]
send-mail: Authorization failed (535 5.7.1
http://support.google.com/mail/bin/answer.py?answer=14257
hz16sm4385885lab.6)

Antwort1

Es gibt noch immer eine Reihe ungelöster Fehler im Zusammenhang mit Sonderzeichen in der AuthPassZeile der /etc/ssmtp/ssmtp.confDatei:

https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&src=ssmtp#_0_3_4

Diese Fehlerberichte beziehen sich speziell auf die ssmtpSeite in Debian, gelten aber wahrscheinlich auch für andere.

  • Debian-Fehlerberichtsprotokolle -#463196: ssmtp kann AuthPass mit '=' oder ':' darin nicht analysieren
  • Debian-Fehlerberichtsprotokolle -#768129: ssmtp: Gleiches Problem hier mit "#"

Laut diesen Berichtsprotokollen werden Zeilen, die die Zeichen =, :, oder enthalten #, entweder vollständig übersprungen oder so verarbeitet, dass der Teil des Kennworts rechts von diesen Zeichen entfernt wird.

Mit anderen Worten: Es gibt derzeit keine Möglichkeit, diese Sonderzeichen in der AuthPassZeile zu „escapen“.


Nebenbei bemerkt: Es gibt eine Reihe von Geräten, wie z. B. drahtlose Heimdrucker, bei denen Passwörter auf einem Ziffernblock eingegeben werden müssen, ähnlich wie bei Telefonen. Einige Sonderzeichen sind auf diesen Geräten verfügbar, viele können jedoch nicht ausgewählt werden.

Für solche Situationen sind Sie (leider) gezwungen, Ihr Geräte-Passwort anzupassen.

Ein längeres Passwort aus Buchstaben und Zahlen ist einem kürzeren mit mehr Satzzeichen vorzuziehen.


Diese Frage wurde auch auf der folgenden Seite gestellt und sehr gut beantwortet:

Welche Zeichen sind im Passwort in ssmtp.conf unzulässig?

Antwort2

Sie können die folgende Problemumgehung verwenden:

feed the password directly in the command line argument

ssmtp -ap "Hash#Passwort" …

alternatively put the password in an environment variable.

ssmtp -ap $PASSWD …

Hoffe, es hat geholfen.

Antwort3

Die Antwort hängt stark vom Kontext ab, in dem Sie das Passwort eingeben oder übermitteln. In einigen Formaten können Sie Ihr Passwort in ""'s einschließen, in anderen müssen Sie die störenden Zeichen maskieren. DiesEscape-Zeichen, unterscheidet sich zwischen Programmen, Shells, Betriebssystemen usw. In Windows-Batch-Skripten ist das Escape, ^während in bestimmten Linux- oder Terminalsituationen das Escape ist \.

Antwort4

Versuchen Sie, das zweite Gleichheitszeichen zu maskieren:

AuthPass=1234+\=5678

verwandte Informationen