Специальные символы в пароле ssmtp

14

У меня есть +и =символы в моем пароле Gmail. Как я могу настроить, ssmtpчтобы избежать ошибки авторизации?

Мой /etc/ssmtp/ssmtp.conf:

root=username@gmail.com
mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
AuthUser=username
AuthPass=1234+=5678
FromLineOverride=YES
UseTLS=YES
hostname=skynet

Как я бегу ssmtp:

$ echo "email content" | mail -s "email subject" otherMail@gmail.com
send-mail: Authorization failed (535 5.7.1
http://support.google.com/mail/bin/answer.py?answer=14257
hz16sm4385885lab.6)
Jofsey
источник
1
В какой программе происходит ошибка? Пожалуйста, дайте нам некоторый контекст. Краткость - это хорошо, но над этим мало работать.
Пользователь 99572 в порядке
Я приложил еще немного информации к вопросу.
Джофси
Вы пробовали одинарные кавычки, которые должны работать на вас
Suyash Jain
Ошибка на github.com/ajwans/sSMTP/blob/master/ssmtp.c#L913 , я помню, что я представил патч еще в 2010 году ... никто не заботится. Я думаю, что это особенность, а не ошибка!
Дэвид С.

Ответы:

5

В AuthPassстроке /etc/ssmtp/ssmtp.confфайла по- прежнему есть ряд ошибок, связанных со специальными символами :

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

Эти сообщения об ошибках предназначены специально для этой ssmtpстраницы в Debian, но, вероятно, относятся к другим.

  • Журналы отчетов об ошибках Debian - # 463196 : ssmtp не может проанализировать AuthPass с '=' или ':' в нем
  • Журналы отчетов об ошибках Debian - # 768129 : ssmtp: та же проблема с "#"

Согласно этим журналам отчетов, строки, содержащие символы =, :либо #либо полностью пропускаются, либо обрабатываются таким образом, чтобы удалить часть пароля с правой стороны этих символов.

Другими словами, в настоящее время нет способа «экранировать» эти специальные символы в AuthPassстроке.


Как примечание, есть ряд устройств, таких как беспроводные домашние принтеры, которые требуют ввода паролей на цифровой клавиатуре, аналогично тем, которые используются на телефонах. Некоторые специальные символы доступны на этих устройствах, но многие не могут быть выбраны.

В подобных ситуациях вы (к сожалению) вынуждены изменить свой пароль для устройства.

Более длинный пароль, состоящий из букв и цифр, предпочтительнее, чем более короткий, с большим количеством знаков препинания.


Этот вопрос также очень хорошо задавался и отвечался на следующей странице:

Какие символы недопустимы в пароле в файле ssmtp.conf?

JonathanDavidArndt
источник
@Hugo Это может быть хорошей темой для другого вопроса: superuser.com/help/how-to-ask Если вы найдете что-то или напишите свое собственное, не стесняйтесь оставлять здесь другой комментарий со ссылкой на него.
Джонатан
Сопровождающим следует рассмотреть возможность обработки записи в файле конфигурации как Urlencoded, как и в некоторых других пакетах.
Старый Гизер
1

Вы можете использовать следующий обходной путь:

feed the password directly in the command line argument

ssmtp -ap "Hash # Password" ...

alternatively put the password in an environment variable.

ssmtp -ap $ PASSWD ...

Надеюсь, это помогло.

Хьюго Тренто
источник
-1

Ответ сильно зависит от контекста, в котором вы вводите или отправляете пароль. В некоторых форматах вы можете заключить свой пароль в ""'s', в других вам нужно будет экранировать символы, которые вас обидели. Этот escape-символ отличается между программами, оболочками, операционными системами и т. Д. В пакетных сценариях Windows экранирование происходит в ^то время, как в определенных Linux или терминальных ситуациях экранирование происходит \.

PenguinCoder
источник
1
Я пытался сохранить свой пароль в 1234\+\=5678форме, но получил ту же ошибку.
Джофси
1
Контекст - это ssmtpпакет, а не SMTP в целом.
Кенни Эвитт
-1

Попробуйте избежать второго знака равенства:

AuthPass=1234+\=5678
Малкольм Бекхофф
источник