SSMTP не отправляет письма «Невозможно открыть mailhub: 25» (tldr: права доступа к файлу, когда пользователь - www-data)

Try:

sed -e :1 -e 's/|/|/28;t' -e 'N;s/\n//;t1' < your-file

Or:

awk -F'|' '{while (NF < 29 && (getline nextline) > 0)
   $0 = $0 nextline; print}' < your-file

В случае, если текст имеет разделители строк CRLF Microsoft, вы можете сначала обработать файлы с помощью dos2unix.

1
14.03.2017, 16:13
2 ответа

SSMTP НЕ давал никаких подсказок или ничего, кроме Не удается открыть почтовый концентратор:25. После ЧАСОВ чтения исходного кода SSMTP, перепробовав все возможные шаги, чтобы воспроизвести то, что делает SSMTP, я наконец нашел его...

При использовании www-data, / etc/ssmtp недоступен из-за прав доступа к файлу. SSMTP МОЛЧИТ об этом и никогда не сообщает вам, что использует конфигурацию по умолчанию вместо недостижимого файла конфигурации.

Все, что мне нужно было сделать, чтобы исправить это: chmod 777 /etc/ssmtp /etc/ssmtp/*

ПРИМЕЧАНИЕ: мои файлы конфигурации не содержат никакого пароля, и меня не волнует безопасность. в данном конкретном случае, но любой орган, который занимается этими вопросами, не должен использовать 777, а вместо этого может использовать 640.

Полезные команды для проверки конфигурации:

  • sudo -u root ssmtp -v (скрыто) < mail.txt
  • sudo -u www-data ssmtp -v (скрыто) < mail.txt
  • / usr/sbin/ssmtp -v (скрыто) < mail.txt

Содержимое mail.txt:

От: (скрыто)

Кому: (скрыто)

Тема: тестовая электронная почта

тестовая text

8
27.01.2020, 23:14

Вы можете просто добавить непривилегированного пользователя в почтовую группу:
usermod -aG mail <username>

И поместите псевдоним в /etc/ssmtp/revaliases
<username>:your_login@your.domain:mailhub.your.domain[:port]

Это сработало как волшебство.

  • Без <username>в /etc/ssmtp/revaliases это не работает.
    И не забудьте перелогиниться вашим пользователем в систему (должен 0n ubuntu)
    перед попыткой новых настроек. Не знаю почему, но так оно и есть...
0
19.08.2020, 18:55

Теги

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