私はIMAPサーバー(Cyrus imapd)で電子メールをフィルタリングするためにsieveを使用しています。私はそれがどのように機能するのかを基本的に理解しており、これまで期待通りに動作するいくつかの簡単なフィルタリングスクリプトを作成しました。これらのスクリプトをサーバーのユーザーメールボックスに添付するには、まずを使用してサーバーに接続し、そこからsieveshell
適切なコマンドを実行します。
では、初めてユーザーのメールボックスから一部のメールをコピーしたいと思います。同じサーバー上の他のユーザーのメールボックスに。しかし、私はこれを達成する方法を知りません。可能ですか?
たとえば、このサーバーに2つのユーザーメールuser1
ボックスがあり、到着するすべてのメッセージが特定の送信者(ヘッダーで識別される)から来た場合にコピーしようとしているとしますuser2
。その場合は、おそらく次のような内容を含むチェススクリプトを作成する必要があります。user1
INBOX
user2
From:
if address :is "from" "[email protected]"
{
/*
What do I need to put in here? The following does not work or is not what I want:
redirect :copy "[email protected]" <--- Probably sends message via SMTP (not desired)
fileinto :copy "user/user2/INBOX" <--- Does not work because the path is relative to the current user's mailbox
*/
}
user2
(通過した)アカウントにロードしてくださいsieveshell
。
しかし、そのスクリプトのコメントからわかるように、アクションラインに何を入れるべきかわかりません。私は多くのふるいチュートリアルと例を研究しましたが、メッセージをコピーする方法についてのヒントが見つかりませんでした。同じIMAPサーバー上の他のユーザーのメールボックス。私がそのような例を見つけることができなかったという事実は、おそらくこれが愚かな考えであることを教えてくれるでしょう。しかし、私はその理由を理解していません。
redirect
現在私が見たすべての例では、これを使用して正規化された電子メールアドレスにメッセージを転送するので、これは間違ったことだと思います。これはメールを転送するためにSMTPサーバーが必要であることを意味するかもしれませんが、私はそうしたくありません。
また、このfileinto
タスクは、ターゲットフォルダがスクリプトが関連付けられているユーザー(メールボックス/アカウント)に関連付けられているため、不適切なようです。これは、他の人にメッセージを配信するためにまったく使用できないことを意味します。
redirect
可能なタスクをリストしたシーブRFCセクションを読んだが、それ以外の適切なタスクが見つからなかったので、fileinto
今は詰まっています。
実際にメールをインポートしてIMAPサーバーに転送する前に、SMTP側で上記の簡単な例の問題を解決できます。しかし、この例は簡単すぎるので、sieveを使用して同じサーバー上の他のローカルアカウントにメッセージをコピーする方法を学びたいと思います。