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.
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
Вы можете просто добавить непривилегированного пользователя в почтовую группу:usermod -aG mail <username>
И поместите псевдоним в /etc/ssmtp/revaliases <username>:your_login@your.domain:mailhub.your.domain[:port]
Это сработало как волшебство.
<username>
в /etc/ssmtp/revaliases это не работает.