読者です 読者をやめる 読者になる 読者になる

さくらのレンタルサーバで自分から届いたメールを.Sentディレクトリに自動的に移動する

メールを送信するときに自分宛てにBccして送信したメールを保存しておく、ということはよくやるけれども、自分からのメールはやっぱり別フォルダに分けておきたい。IMAPを使えばサーバ上で自動的にフォルダを分けて送信済みメールは専用フォルダに行くようにしてくれそうなものだけども、iPhoneの「メール」はIMAPでもそういう気の利いてくれたことをしてくれないようだ。*1
また、メールの送信サーバと受信サーバが違う場合もうまくいかない(と思う)。
そこでサーバの設定を触って自分用にBccされたメールが自動的に送信済みフォルダに移動されるようにしてみた。

さくらのレンタルサーバではメールは /home/(サーバのアカウント)/MailBox/(メールアカウント)/maildir/ (以下、maildirディレクトリと呼ぶ) というディレクトリの中に保存され、送信済みフォルダはその下の .Sent/ (以下、.Sentディレクトリと呼ぶ)というディレクトリに相当する。
また、maildropというツールが導入されており、サーバ上でメールの振り分けが可能だ。
maildropに関してはさくらのレンタルサーバー非公式FAQの「メール」という項目に情報があった。
faq.sakuratan.com

maildropのための振り分け設定は上述した maildir ディレクトリが存在するのと同じ階層の、/home/(サーバのアカウント)/MailBox/(メールアカウント)/ にある .mailfilter というファイルに書く。以下のようにした。

シェルスクリプトのように色々コマンドを書いたり、変数を使ったりできるようだ。
メール受信時に .mailfilter が実行されるとき、カレントディレクトリは /home/(サーバのアカウント)/MailBox/(メールアカウント)/ になるので、pwdコマンドを実行した結果の文字列から自分のメールアドレスの@より前を取得できる。他のメールユーザに展開したい場合もファイルコピーだけで対応できる。(でも他の振り分け設定を上書きしないよう注意が必要)

*1:後で調べてみたら、なんか設定すればいいらしい