特定の時間にメールを送信

特定の時間にメールを送信

たとえば、今すぐメールを作成して、将来の特定の時間に送信したいと思います。午前中にオフィスが開いたら。

これを行う良い方法は何ですか?

ほとんどのユーザーエージェントはこの機能をサポートしていません。おそらく年中無休の24時間運営が期待できないので、これは私にとって意味があります。

遅延転送用のサーバー側機能はありますか?私は現在Postfixメールサーバーを運営しています。

Unix方式は何ですか?

(KMailにはこの機能があることを知っていますが、この特定のアプリケーションは多くのインフラストラクチャをまとめることができるので避けたいと思います。)

答え1

postfixを使用する場合のメカニズムが説明されています。ここ、まだ試していません。

次の行をコピーして追加してpostfixを再設定します/etc/postfix/main.cf

defer_transports = hold
default_transport = hold

すでにファイルがある可能性がありますdefault_transport。新しいファイルを実際のファイルに置き換え、main.cfpostfixを再起動してメールを送信してください。holdキューに追加されます。キューを解放するには、物理​​を復元してmain.cfpostfixを再起動し、キューを強制的に解放します。

sudo service postfix restart
sudo mailq -q

上記以外に、次のこともできます。指定されたヘッダーでメッセージを保持たとえば、メールプログラムでX-スタイルヘッダーを追加したり、特定のヘッダー文字列と一致させたい場合ですSubject: junk of the day。サフィックスがこのregexp機能を実装していることを確認してください。

postconf -m|egrep 'regexp|pcre'

少なくとも正規表現を出力する必要があります。ファイルを作成して/etc/postfix/header_checks一致させるヘッダーの正規表現パターンを入力し、次に を入力しますHOLD。たとえば、次のようになります。

/Subject: *junk of the day/ HOLD

このマップファイルの名前を次の場所に追加します/etc/postfix/main.cf

header_checks = regexp:/etc/postfix/header_checks

そしてpostfixを再起動してください。適切なメッセージを送信し、mailq キューに入っていることを確認します(!キューIDの横に表示されます)。すべての保留メッセージをオフにして送信するには:

sudo postsuper -H  ALL
sendmail -q

関連情報