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

Удаление задержки отправки mutt

Первоначально я использовал встроенный SMT MTA. Однако после того, как вы отправили сообщение, произошла значительная пауза. Это можно отключить, используя внешний MTA с set sendmail_wait=-1 в muttrc .

Однако, если я использую msmtp в качестве MTA, тогда нет уведомлений об ошибках (хотя msmtp пишет в logfile как указано в ~/.msmtprc ).

Попытка получить уведомления

Из командной строки я могу вызвать команду, когда msmtp не работает.

 </tmp/tosend msmtp -a default foo@bar.com --read-envelope-from || echo failed 

Разумеется, я мог бы отправить уведомление о сбое моей локальной почте * nix. Однако это не работает в mutt, если я устанавливаю следующее в muttrc .

 set sendmail = "/usr/bin/msmtp || date >> /tmp/msmtp.fail" 

Это приводит к тому, что все сообщения электронной почты не отправляются без звука, со следующей ошибкой в msmtp logfile msmtp .

 Nov 05 10:53:09 host=mail.bar.com tls=on auth=on user=foo@bar.com from=foo@bar.com recipients=||,date,>>,/tmp/msmtp.fail,foo@bar.com smtpstatus=501 smtpmsg='501 #5.1.1 bad address ' errormsg='recipient address >> not accepted by the server' exitcode=EX_DATAERR 

Очевидно, что mutt анализирует дополнительные части команды как получателей.

Вопрос

Есть ли способ получить уведомления о отправленных сообщениях, которые не выполняются, при отправке в фоновом режиме? Я не привязан к msmtp обязательно.

3 Solutions collect form web for “Могу ли я отправлять электронную почту в фоновом режиме в Mutt, но при этом уведомляются об ошибках?”

Напишите себе крошечный сценарий оболочки для использования в качестве значения «sendmail». Например, configure ~/.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 с "$@" , а почта будет на stdin, которую мы скопируем сразу во временный файл, а затем передадим msmtp . Любые сообщения об ошибках записываются в переменной msg и если код возврата является сбоем, вы можете запустить всплывающее диалоговое окно, например, zenity.

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

Список других опций nullmailer можно найти по адресу http://linuxmafia.com/faq/Mail/nullmailers.html.

Ответ meuh был очень полезен. Вот более простая версия mymuttsendmail. Замените username на свое имя пользователя в следующем коде, чтобы он мог отправлять вам по электронной почте локально в случае возникновения ошибки. Переменная $? хранит код выхода 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 
  • Должен ли SMTP-сервер быть доступным за пределами наших сетей?
  • Попытка отправить несколько текстовых вложений через почтовое сообщение
  • Как ограничить количество сообщений, отправленных через почтовый сервер?
  • Проверка SMTP через SSL
  • Как генерируются заголовки электронной почты?
  • Формат заголовков SMTP для сканирования электронной почты в почтовом ящике
  • Как отправить сырое сообщение в Linux?
  • Блокировка блокировки SMTP с помощью белого списка
  • Как я могу безопасно отправлять электронную почту через зашифрованное соединение из командной строки?
  • Приложение GUI для отправки писем через определенные SMTP-серверы
  • Как отправить почту с удаленного SMTP-хоста?
  • Interesting Posts

    Как измерить время поступления пакета?

    Является ли эта задача замороженной, связанной с ReiserFS (v3)? (или: ReiserFS становится настолько старым, что его нужно активно заменять?)

    bash regex extract key = значение

    Как убедиться, что встроенное эхо-сообщение оболочки вызвано так, что оно не отображается в списке процессов?

    Знаки процента и переменная среды в сценарии оболочки

    Как разделить буфер обмена Windows с Linux с помощью TightVNC?

    Прочитайте первый файл в списке файлов в каталоге

    procmail рецепт с регулярным выражением не работает

    / etc / environment не работает

    Проблема DNS – попытка создания LiFi-маршрутизатора

    Что обозначают p и e в семействе вызовов exec?

    В новой сенсорной панели Elantech отсутствует мультитач (последнее ядро)

    Как создавать случайные IP-адреса

    Linux обнаруживает sata ssd только с ACPI = off, но окна всегда делают

    Сценарий оболочки для перемещения старых файлов?

    Linux и Unix - лучшая ОС в мире.