Caractères spéciaux dans le mot de passe ssmtp

14

J'ai +et des =caractères dans mon mot de passe gmail. Comment puis-je configurer ssmtppour éviter une erreur d'autorisation?

Mon /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

Comment exécuter 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)
Jofsey
la source
1
Dans quel programme l'erreur se produit-elle? Veuillez nous donner un peu de contexte. La concision est bonne, mais c'est peu de travail.
utilisateur 99572 va bien le
J'ai joint quelques informations supplémentaires à la question.
Jofsey
Avez-vous essayé des guillemets simples, cela devrait fonctionner pour vous
Suyash Jain
Le bogue est sur github.com/ajwans/sSMTP/blob/master/ssmtp.c#L913 , je me souviens que j'ai soumis un patch en 2010 ... personne ne s'en soucie. Je suppose que c'est une fonctionnalité plutôt qu'un bug!
David S.

Réponses:

5

Il y a encore un certain nombre de bogues en suspens concernant les caractères spéciaux sur la AuthPassligne du /etc/ssmtp/ssmtp.conffichier:

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

Ces rapports de bogues concernent spécifiquement la ssmtppage de Debian, mais s'appliquent probablement aux autres.

  • Journaux des rapports de bogues Debian - # 463196 : ssmtp ne peut pas analyser AuthPass avec '=' ou ':' dedans
  • Journaux des rapports de bogues Debian - # 768129 : ssmtp: Même problème ici avec "#"

Selon ces journaux de rapport, les lignes contenant les caractères =, :ou #sont soit entièrement ignorées, soit traitées de manière à supprimer la partie du mot de passe à droite de ces caractères.

En d'autres termes, il n'existe actuellement aucun moyen "d'échapper" à ces caractères spéciaux sur la AuthPassligne.


En guise de remarque, il existe un certain nombre de périphériques, tels que les imprimantes domestiques sans fil, qui nécessitent la saisie de mots de passe sur un pavé numérique, similaires à ceux utilisés sur les téléphones. Certains caractères spéciaux sont disponibles sur ces appareils, mais beaucoup ne peuvent pas être sélectionnés.

Pour de telles situations, vous êtes (malheureusement) obligé d'ajuster votre mot de passe pour l'appareil.

Un mot de passe plus long composé de lettres et de chiffres est préférable à un mot de passe plus court avec plus de caractères de ponctuation.


Cette question a également été posée et répond très bien sur la page suivante:

Quels caractères sont illégaux dans le mot de passe dans ssmtp.conf?

JonathanDavidArndt
la source
@Hugo Cela peut être un bon sujet pour une autre question: superuser.com/help/how-to-ask Si vous trouvez quelque chose ou postez le vôtre, n'hésitez pas à laisser un autre commentaire ici en le reliant.
JonathanDavidArndt
Les responsables doivent envisager de traiter l'entrée du fichier de configuration comme codée en url comme dans certains autres packages.
Old Geezer
1

Vous pouvez utiliser la solution de contournement suivante:

feed the password directly in the command line argument

ssmtp -ap "Hash # Password" ...

alternatively put the password in an environment variable.

ssmtp -ap $ PASSWD ...

J'espère que cela a aidé.

Hugo Trentesaux
la source
-1

La réponse dépend fortement du contexte dans lequel vous saisissez ou soumettez le mot de passe. Dans certains formats, vous pouvez entourer votre mot de passe en ""'s, dans d'autres, vous devrez échapper aux caractères incriminés. Ce caractère d'échappement , diffère entre les programmes, les coquillages, les systèmes d' exploitation, etc. scripts batch dans Windows l'évasion est ^alors que dans certaines situations Linux ou d'un terminal, l'évasion est \.

PenguinCoder
la source
1
J'ai essayé de stocker mon mot de passe sous 1234\+\=5678forme, mais j'ai eu la même erreur.
Jofsey
1
Le contexte est le ssmtppackage, pas SMTP en général.
Kenny Evitt
-1

Essayez d'échapper au deuxième signe égal:

AuthPass=1234+\=5678
Malcolm Boekhoff
la source