Скрипт с ssmtp отлично работает из командной строки, но не в cron

У меня есть сценарий Bash, fer.sh, который запускает ssmtp для отправки почты. Идентификатор пользователя находится в AuthUser в /etc/ssmtp.conf, и я передал пароль, используя опцию -ap, следующим образом:

#!/bin/bash
ssmtp xx@gmail.com -ap "mypasswordcontainsacolon:" ...

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

Затем я запланировал сценарий в cron. Но при запуске это всегда приводило к:

sSMTP [589]: авторизация не удалась (535 5.7.8 https://support.google.com/mail/?p=BadCredentials

После включения Debug в соответствии с предложением Jos, диалог SMTP показал, что при вызове cron использовался пустой пароль (UGFzc3dvcmQ6 является base64 для Password:):

sSMTP[2264]: SSL connection using ECDHE_RSA_CHACHA20_POLY1305
sSMTP[2264]: 220 smtp.gmail.com ESMTP a3sm2338321pff.122 - gsmtp
sSMTP[2264]: EHLO ferc.org.sg
sSMTP[2264]: 250 SMTPUTF8
sSMTP[2264]: AUTH LOGIN
sSMTP[2264]: 334 VXNlcm5hbWU6
sSMTP[2264]: bXlhY2NvdW50QGdtYWlsLmNvbQ==
sSMTP[2264]: 334 UGFzc3dvcmQ6
sSMTP[2264]: 
sSMTP[2264]: 535 5.7.8  https://support.google.com/mail/?p=BadCredentials a3sm2338321pff.122 - gsmtp
cron[1051]: sendmail: Authorization failed (535 5.7.8  https://support.google.com/mail/?p=BadCredentials a3sm2338321pff.122 - gsmtp)
sSMTP[2264]: Authorization failed (535 5.7.8  https://support.google.com/mail/?p=BadCredentials a3sm2338321pff.122 - gsmtp)
CRON[2252]: (pi) MAIL (mailed 109 bytes of output but got status 0x0001 from MTA#012)

Когда скрипт запускался из командной строки, пароль был правильно закодирован в base64 там, где находится пустая строка выше.

В чем может быть причина проблемы? Оба метода использовали точно такой же файл скрипта, fer.sh.

-1
задан 14 June 2019 в 16:33

0 ответов

Другие вопросы по тегам:

Похожие вопросы: