Я использую Ubuntu Server 16.04 с пакетом ssmtp для sendmail. Я прочитал изразнообразиеизместачто вы не можете использовать "специальные" символы в пароле, и я обнаружил, что это правда, что я не могу экранировать или заключать пароль в кавычки. Я смог проверить только буквенно-цифровые пароли в ssmtp.conf, чтобы они работали, но я не могу найти это нигде задокументированным. Мой вопрос: какие символы разрешены/запрещены для пароля?
Или есть ли другой способ экранирования? Я пробовал обратный слеш, одинарные и двойные кавычки, но безрезультатно.
Спасибо
решение1
Кажется, есть ряд нерешенных ошибок.здесьотносительно проблемных символов в AuthPass
директиве:
и я не знаю, будет ли это так конкретно для ssmtp, но в целом плохие символы для использования в паролях - это пробелы, расширенный ASCII: è é ê ë и т. д. и UNICODE. Придерживайтесь a-z A-Z 0-9 .-
и делайте пароли длиннее, а не сложнее.
решение2
Рассматривая read_config()
метод настрока 883для текущего блоба af4d1e58d28fa9450bfc6a80fbacc75ca28c2220 кажется, что знак равенства =
или символ решетки #
заставит его молча продолжить работу и пропустить синтаксический анализ этой строки файла конфигурации.
/* Make comments invisible */
if((p = strchr(buf, '#'))) {
*p = (char)NULL;
}
/* Ignore malformed lines and comments */
if(strchr(buf, '=') == (char *)NULL) continue;
Я все же хотел бы увидеть авторитетный ответ по этому вопросу или конкретную ссылку на документацию.
решение3
Вы можете использовать следующий обходной путь:
- введите пароль непосредственно в аргумент командной строки
ssmtp -ap "Hash#Password" ...
- в качестве альтернативы поместите пароль в переменную среды.
ssmtp -ap $PASSWD ...
Надеюсь, это помогло.