web-dev-qa-db-ja.com

後で延期されたメールを送信するにはどうすればよいですか?

私は早起きするのは好きではありませんが、人々は午前3時ではなく朝にメールを受け取ることを好みます。したがって、私はよくatを使用して、眠っている間にメールを送信します。

しかし、これには、メールをテキストファイルとして記述し、sendmailで送信する必要があるという複雑さが伴います。まだ送信されていないメールをmuttの延期されたmboxに残します。muttを使用してそのメールを送信する方法はありますか?

OK、後でmuttを使用してメールを送信する1つの方法は次のとおりです。

echo 'cat /home/grochmal/body | mutt -s "mail" [email protected]' | at now + 12 hours

しかし、私はそのメールを延期されたmboxに入れています。

延期されたメールが1つしかない場合、これを行うことができます。

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/sendmailpostfixラッパーへのソフトリンクです。

9
grochmal

私はこのスクリプトを発見しました msmtpqueue irc.freenode.net/neomuttのwhereistejasによって言及されました

Smtpコマンドを_msmtp-enqueue.sh_に変更します。メールは送信されずにキューに入れられます。そして、後で_msmtp-runqueue.sh_を使用して送信できます。送信をスケジュールするには、at(1)を使用できます。

キュー内のすべての電子メールは、_msmtp-runqueue.sh_が実行されるときに送信されます。ただし、_msmtp-runqueue.sh_を少し変更するだけで、複数のバルクの送信をスケジュールできます。

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

2つの異なるバルクでメッセージを送信するには、次のことができます。

  1. 最初のバルクをエンキューする
  2. [〜#〜] queuedir [〜#〜]を移動します
  3. スケジュール_msmtp-runqueue.sh_ with at(1) with[〜#〜] queuedir [〜#〜]env var新しいディレクトリの場所
  4. 2番目のバルクに対して手順を繰り返す
2
Jakub Jindra