Настройка почтовой команды для использования msmtp

Ваш sedтрубопровод немного задом наперед:

sed 's/w/f/g' | sed 's/f/zzzzz/g' <<< "$line"

Это приведет к тому, что первый sedбудет читать из стандартного ввода, т. е. ваших строк 456и 789, а второй sedбудет читать$line(123). Канал остановит выход первого sedот получения куда-либо , поскольку второй sedне читает из него.

Я предполагаю, что вы хотите, чтобы первыйsedчитал строку, а второй sedсчитывал вывод первого.

Вы бы сделали это либо с

{ sed 's/w/f/g' | sed 's/f/zzzzz/g'; } <<< "$line"

или

sed 's/w/f/g' <<<"line" | sed 's/f/zzzzz/g'

Также обратите внимание, что в этом случае вы можете объединить два вызова sedв один:

sed 'y/w/f/; s/f/zzzzz/g' <<<"$line"

или,

sed -e 'y/w/f/' -e 's/f/zzzzz/g' <<<"$line"

Я дополнительно изменил первое выражение, чтобы использовать команду y, которая заменяет отдельные символы во всей строке.

Однако очень редко рекомендуется вызывать sedдля отдельных строк ввода. Если вам не нужен вывод echo, ваш скрипт можно упростить до

#!/bin/sh
sed 'y/w/f/; s/f/zzzzz/g'

или даже

#!/usr/bin/sed -f
y/w/f/
s/f/zzzzz/g
0
22.03.2021, 00:06
2 ответа

Возможно, вам придется настроить оператор mailerв файле конфигурации, как описано в руководстве . Либо используйте оператор типа sendmail://progname, если msmtp придерживается совместимости с sendmail, либо используйте что-то вроде prog://pathname[?query], как описано на этой странице .

Как найти глобальный или локальный файл конфигурации также объясняется в руководстве . Обычно это /etc/mailutils.config для глобального файла конфигурации или~/.mail для локального файла конфигурации.

0
28.04.2021, 22:58

Это сработало

Изhttps://moritzvd.com/email-with-smtp-debian-ubuntu/

Чтобы иметь возможность использовать команду mail, нам необходимо установить mailx

sudo apt-get install bsd-mailx

Настроить агент транспорта почты на использование msmtp

sudo nano /etc/mail.rc

добавить следующее:

set mta=/usr/bin/msmtp

1
28.04.2021, 22:58

Теги

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