Могу ли я отправлять электронную почту в фоновом режиме в Mutt, когда все еще получаю уведомления об ошибках?

Хрипящим SysV init использования и всеми сервисами управляют со специальными сценариями оболочки в /etc/init.d, так ls /etc/init.d перечислит их. Эти файлы также содержат описание сервиса наверху, и каталог содержит a README.

У некоторых, но не всех их есть a .sh суффикс, необходимо оставить это при использовании, например, update-rc.d.

2
05.11.2015, 02:17
3 ответа

Напишите себе крошечный сценарий оболочки для использования в качестве значения "sendmail". Например, настройте ~ / .muttrc с

set sendmail = /home/yourid/bin/mymuttsendmail

и в mymuttsendmail поместите что-то вроде

#!/bin/bash
tmp=$(mktemp /tmp/mymutt.XXXXXX)
cat >$tmp
( if ! msg=$(msmtp "$@" <$tmp 2>&1)
  then zenity --error --text "$msg"
  fi 
  rm $tmp
) &
exit 0

и chmod + x этот файл. Помните, что этот сценарий будет вызываться с получателями в качестве дополнительных аргументов, которые мы передаем в msmtp с помощью "$ @" , а почта будет на стандартном вводе, который { {1}} мы немедленно копируем во временный файл, чтобы затем передать его msmtp .Все сообщения об ошибках фиксируются в переменной msg , и если код возврата является ошибкой, вы можете запустить всплывающее диалоговое окно, например zenity.

3
27.01.2020, 21:56

На самом деле, я нашел то, что мне нужно сделать:

parallel --j 2 -- "sh script1" "sh script2" &
PID=$!
tail --pid=$PID -f log1 log2
-121--132976-

Вы рассматривали возможность использования лучшего метода обнуления, msmtp настолько же минималистичен, насколько он становится? или даже полный MTA как exim или постфикс (их не очень трудно настроить)?

есть список других nullmailer вариантов в http://linuxmafia.com/faq/Mail/nullmailers.html

1
27.01.2020, 21:56

ответ meuh был очень полезным. Вот более простая версия mymuttsendmail. Замените имя пользователясвоим именем пользователя в следующем коде, чтобы он мог напишите вам локально в случае ошибки. Переменная $? магазины код выхода msmtp и использует местную почту, чтобы отправить вам электронное письмо, если есть ошибка отправки письма. Только не забудьте установить sendmail_wait=-1.

#!/bin/bash
/usr/bin/msmtp "$@" 2>&1
VAL=$?
if (($VAL))
then 
    # message not sent
    echo "Error sending mail to $@, exit code $VAL" | mail -s 'ERROR' username
fi 
1
27.01.2020, 21:56

Теги

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