Могу ли я отправлять электронную почту в фоновом режиме в 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?
  • Hotmail не получает письма от скрипта, но работает с сервера
  • Производить отсканированное сообщение при сбое Sendmail
  • Доступ к ретрансляции запрещен при использовании SMTP для внешних получателей POSTFIX FREEBSD
  • Как включить безопасную проверку подлинности (ssl, tls, starttls) в nullmailer 1.0.5. и обновить nullmailer до 1.11
  • Sendmail SMTP не работает на сервере apache2
  • Postfix + dovecot, отключить проверку подлинности на порту 25
  • OpenSMTPD Консолидация не поддерживаемых сообщений
  • Postfix не работает с TLS, но Dovecot делает
  • Как отправить почту с удаленного SMTP-хоста?
  • SMTP Auth - SASL на Dovecot, Postfix и CentOS 6.2 (и Open-Xchange)
  • Interesting Posts

    Показывать вывод команды, запускаемой внутри экрана, если она выходит с ошибками

    Как память RES, сообщенная для процесса Java, будет выше, чем память VIRT?

    Помогите понять изменение в Vim

    Не удается подключиться к Wi-Fi-сети с SSID, содержащим диакритические знаки

    Проблема Tmux Terminfo с привязкой клавиш Zsh

    изменить форматирование форматирования на основе cwd

    Как получить системное время с микросекундой Разрешение

    Частота слов в тексте на неанглийском языке: как я могу объединить единичные и множественные формы и т. Д.?

    Отсутствует источник ~ / .bashrc Терминал Mac: ~ / .profile?

    Solaris 11 и vim F вместо конца

    Правильный способ установки доли samba

    Как знает ps, чтобы скрыть пароли?

    Как использовать Emacs для распознавания и автоматического открытия зашифрованного файла GPG в бронированном формате ASCII?

    Установите новое ядро ​​в PowerPC debian

    Переименуйте много файлов со всеми типами символов, с POSIX-переносимостью

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