Email

如何在稍後使用 Mutt 發送延遲郵件?

  • November 1, 2021

我不喜歡早起,但人們更喜歡在早上而不是凌晨 3 點收到電子郵件。因此,我經常at在睡覺時發送電子郵件。

但這帶來了複雜性,我需要將電子郵件編寫為文本文件並使用sendmail. 我將那些尚未發送的電子郵件留在 Mutt 推遲的 mbox 中。有沒有辦法用來mutt發送該電子郵件?

好的,稍後發送郵件的一種方法mutt如下:

echo 'cat /home/grochmal/body | mutt -s "mail" john.doe@example.com' | at now + 12 hours

但我在推遲的 mbox 中有那封郵件。

如果我只有一封延期郵件,我可以這樣做:

echo '/usr/sbin/sendmail -t <(cat /home/grochmal/mail/postponed | sed 1d)' | at now + 12 hours

但是我的延遲 mbox 中經常有幾封延遲的電子郵件,如何選擇要發送的電子郵件?

我的相關部分muttrc是:

set sendmail  = "/usr/sbin/sendmail -oem -oi -f $EMAIL"
set folder    = $HOME/mail
set record    = +sent
set postponed = +postponed

/usr/sbin/sendmail的只是postfix包裝器的軟連結。

我在 irc.freenode.net/neomutt 上發現了 whereistejas 提到的這個腳本msmtpqueue

將您的 smtp 命令更改為msmtp-enqueue.sh. 電子郵件將排隊而不是發送。您可以稍後使用 發送它們msmtp-runqueue.sh。要安排發送,您可以使用at(1).

隊列中的所有電子郵件都在msmtp-runqueue.sh執行時發送。但只需稍作更改,msmtp-runqueue.sh您就可以安排發送多個批量。

QUEUEDIR=${QUEUEDIR:-~/.msmtpqueue}

要以兩種不同的批量發送消息,您可以:

  1. 排隊第一批
  2. 移動QUEUEDIR
  3. msmtp-runqueue.sh使用指向新目錄位置的 QUEUEDIR env at(1)var進行調度
  4. 重複第二個批量的步驟

引用自:https://unix.stackexchange.com/questions/310451