tshのblog

tshのblog

Kindle OASISにPDFドキュメントを流し込む(その2)

前回、PDFドキュメントがメールで届くと自動転送でKindleevernoteに保存する設定を行いました。

 

tsh.hatenablog.jp

 

今回は、その時の課題であった email の Subject: をどうするか?について考えてみることにします。

 

 

 

メール転送時に Subject: を変更する

 

 前回はメールクライアントソフトである程度まで自動化できましたが、細かい部分の設定が思い通りにならない状態でした。というわけで、クライアント側でだめなら、サーバー側でやってみましょう。

サーバーサイドのメールフィルタープログラム

まず思いついたのはProcmail。太古の昔からあるサーバーサイドのメールフィルタープログラムです。この手の、受信したメールを触る用途に長らく使われてきました。

が、時代は既に令和の時代。残念ながら2001年頃からメンテナンスが止まっているようで、今更採用するのもちょっとはばかられる感じです。

となると、次に考えたのがmaildrop。こちらは Courier Mail Serverの一部ですので、現在も(大手サイトも含めて)メールサーバーとして採用しているサイトも多数存在しているようです。

どんな感じかになるか、やる事についてさらっと触れておくと、.mailfilter*1といったファイルにいわゆるメールフィルターのルールを記述して、サーバー側の所定の場所に送ったりする段取りになります*2

で、正直白状すると、今回maildropの記事を書き始めてみたのですが、 (Procmailもほぼ同様なのですが)こういったサーバーを触るファイルのやり取りが意外と面倒なんですよね。Web上にformを作ったりと皆さん色々と工夫されているようですが、メールのフィルターをちょっと書きたいだけなのに、サーバー側の色々なお約束を意識してファイル操作(や、その他作業)をするのは、なんだか本当にやりたいことからどんどん離れていってるような気もします。

というわけで、メールクライアント側だけでもう少しなんとかしたい!ということで探してみたところ、見つかりました!

今回ご紹介する「Pigeonhole Sieve」です。

The Procmail Companion

The Procmail Companion

  • 作者:Mccarthy, Martin
  • 発売日: 2001/11/01
  • メディア: ペーパーバック
 
Dovecot: Pop3/Imap Servers for Enterprises and Isps

Dovecot: Pop3/Imap Servers for Enterprises and Isps

  • 作者:Heinlein, Peer
  • 発売日: 2016/07/29
  • メディア: ペーパーバック
 

 

PIgeonhole Sieveとは

PigeonholeとはDovecot IMAPサーバー上でSieve言語とManageSieve protocolを使うようにするプロジェクト名とのこと(以下略)、まぁ、詳しく知りたい方は本家サイトを御覧ください。

pigeonhole.dovecot.org

 

今回の記事では、サーバー側の設定等については「Sieveをサポートしているサーバーを使ってね❤」ってことでサクッと省略。サポートしているサーバーを使う*3ものとして、メールクライアント側に集中して話題を進めていきます。

 

Thunderbird Sieve アドオン

Thunderbirdは(敢えて説明する必要も無いでしょうが)数あるメールクライアントの中の一つで、お使いの方も多いと思います。

www.thunderbird.net

 

Thunderbirdでは、メールを操作するSieve言語とManageSieve protocolをサポートするアドオンが開発されていて、簡単に機能追加できます。

今回は、Sieveというズバリそのままの名前のアドオンを使ってみます。

addons.thunderbird.net

Thunerbirdにアドオンを追加

それでは、手元のThunderbirdにSieveアドオンを追加してみましょう。

f:id:t_sh:20200728184641p:plain

アドオンを追加

 

アドオンマネージャー画面で、「sieve」を検索。

f:id:t_sh:20200728184711p:plain

sieveアドオンを検索

 

Sieveアドオンが見つかりました。Thunderbirdに追加してみます。

f:id:t_sh:20200728185031p:plain

sieveアドオンを追加

 

色々と聞かれますが、もちろん「追加」で。

f:id:t_sh:20200728185217p:plain

Sieveを追加しますか?と聞かれるので「追加」

 

「追加されました」と画面に表示されれば成功です。

f:id:t_sh:20200728185339p:plain

SieveがThunderbirdに追加されました。

 

Thunderbirdへのアドオン追加作業はこれで終わりです。お疲れさまでした。

 

Sieveを使ってみる

 それでは早速Sieveを使ってみましょう。

「ツール」>「Sieve Message Filters」をクリック。

f:id:t_sh:20200728190513p:plain

Sieveを使ってみる

 

以下の画面のようになりますから、「Connect」をクリックしてサーバーに接続。

f:id:t_sh:20200728190704p:plain

サーバーに接続

 

Connectingの画面はすぐに切り替わります。

もし、しばらく経っても画面が以下のままならサーバー側がSieveに対応していないかもしれませんので、その時は管理者に問い合わせるか素直に諦めましょう。

f:id:t_sh:20200728190924p:plain

接続中

 

以下の画面になれば、接続成功です。

 

「New script」を押して早速メールフィルターを記述しましょう。

f:id:t_sh:20200728191536p:plain

New script

 

まずはスクリプトの名前を入力します。

今回はお試しなので、「test」と入れてみます。

f:id:t_sh:20200728191646p:plain

Create Script

 

「test」という名前が反映されました。「Edit」を押します。

f:id:t_sh:20200728191824p:plain

Edit

 

すると以下の画面のようにエディターの画面になりますので、ここに入力していきます。

f:id:t_sh:20200728192011p:plain

Source画面

 

今回は、お試しで「keep;」とだけ記述してみます。

入力したら「Save」をクリックして保存しましょう。

f:id:t_sh:20200728192145p:plain

keep; とだけ入力する

 

次はActivate作業です。この操作を実行すると、サーバー側でフィルター動作が開始します。「Activate」をクリック。

f:id:t_sh:20200728192341p:plain

Activate

 

アクティブ状態になりました。

f:id:t_sh:20200728192501p:plain

アクティブ状態になった

これで準備は完了です。

 

テストしてみる

それでは先程のフィルターが正常に動作しているか試してみることにします。

テストメールを作成して、先程のアカウントに送信してみます。

以下のようなメールを作成して、送信してみると、

f:id:t_sh:20200728194905p:plain

テストメール送信

今送信したメールを受信しました。

f:id:t_sh:20200728194217p:plain

テストメール受信

メールフィルターには、「keep;」とだけしか記述してませんので、普段通り受信すれば成功です。お疲れさまでした。

 

ちなみに

keep;

とは、受信したメールを通常時の配送場所にそのまま配送するSieve言語の命令です。今回の場合はフィルターを設定せずに動作させる場合と同じ動作になるわけです。いわゆる「何もしないメールフィルター」と言ってもいいでしょう。

何もしないフィルターを書いて意味があるのか?と言われると微妙なのですが、ある意味最も基本的な動作の一つとも言えますので、初めて使うシステムで、エラー等が発生せずにきちんと動作しているか確認するには最適ともいえます。

いきなり複雑なコードを書いて上手く動作せず「結局、何が原因か分からない」状態に陥ってしまうより、断然良いわけです。

 

まとめ

今回は、ThunderbirdにSieveアドオンを追加し、「何も特別なことを行わないフィルター」を書いて動作確認をしてみました。

次回は、フィルター部分について詳しく触れていきたいと思います。

 

Dovecot: Pop3/Imap Servers for Enterprises and Isps

Dovecot: Pop3/Imap Servers for Enterprises and Isps

  • 作者:Heinlein, Peer
  • 発売日: 2016/07/29
  • メディア: ペーパーバック
 

 

前回の記事はこちらです。

tsh.hatenablog.jp

 

 

*1:先頭に"."ドットがついています。念のため

*2:Procmailでもほぼ同様で、レシピといわれる.procmailrcを管理する必要があります。

*3:サポートしているサーバーを探しているんだけど見つからない等でお困りでしたら、コメント欄にてご連絡ください。