tshのblog

tshのblog

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

前回まででKindleへドキュメントを流し込むロジック部分のコーディングは終わりました。

tsh.hatenablog.jp

今回からはメインのコードを書いて、実際に動作するようにしていきます。 [asin:B07ZWCDYZG:detail] evernote.com trello.com


それではメインのコードを書いてみましょう。
ここから先は、個人個人のポリシーによって変わると思いますが、概ね共通してるであろうところをコードに落とし込んでいきます。

自分自身のアドレスでチェック

To: で振り分け

まずは、To: に自分自身のアドレスが含まれているかどうか、が最重要ですね。
exmaple1@example.jp が自分自身のメールアドレスだとすると、コードとしては次のようになります。

#test8-1-1
if address ["To", "Cc"] "example1@example.jp"
{
  keep;
}

To: もしくはCc: に自分自身のアドレスがあるかどうか確認して存在すれば、この場合はkeep (何もしない)を実行します。

自分宛てのメールではない場合はどうしましょうか?自分宛てではないメールとして考えられるパターンをいくつか列挙すると、(1)(自分が登録した)Webサービス等からのお知らせメール、(2)(自分が登録した)メーリングサービスからのMLメール、(3)知人、企業等からの案内メール、(4)ばらまかれたSPAMなどの不要メール、等でしょうか。

不要メールを除いていずれ目を通すとしてもすぐに返信しなくても問題なさそうですので、生活の中でまとめて読む時間を作ることとして、まとめて読む用のメールアドレス(read_later@example.jp)に転送してしまいましょう。

コードは次のようになります。

#test8-1-2
if address ["To", "Cc"] "example1@example.jp"
{
  keep;
}
else
{
  redirect "read_later@example.jp";
}
(補足)なぜ転送するのか

通常こういった例では同じアカウントで別フォルダーに保存することが多いのですが、先ほどの例では自分が管理している別のアカウントにあえて転送する設定にしています。 というのも「今すぐ処理する対象以外は、目の前から完全に消し去っておく」ことが、目の前の対象に集中する手法として有効だからです。

今どきのメールクライアントでは、ラベルを付けたりフラグを立てたりと色々な機能があるにはあるのですが、「未読のメールがあれば別フォルダーであっても何らかの形で未読情報が見えてしまう」のがとても問題で、未読情報が見えた瞬間に「頭の中で色んな連想を開始」して、その結果として集中力が失われてしまいます。

これを解消するには「自分宛て以外のメールを振り分け時点で既読にしておく」しかないのですが、当然ながら後でまとめて目を通す際に不便すぎますよね。 ということで、「自分宛て以外のメールは当面の間完全に消し去る」「未読管理は必要」の条件を満たすための案としての「まとめて目を通す用途のメールアドレスに転送」ということなのです。

同様の議論から、自分宛てのメールであっても集中力を持続させるため「新着メール通知設定」は「全てオフ」にしておきましょう。

From: もチェックしておく

メール運用のポリシーにもよりますが、 特に複数のメールクライアントを使わけている等の理由で、返信時に自分宛てに Bcc: しておく、もしくは To: や Cc: に自分自身のアドレスを入れておく場合がよくあります。先ほどのコード例だと To: や Cc: に入れた場合は問題ないのですが、自分宛てに Bcc: する設定にした場合、控えのメールもまとめて読む用のメールアドレスに転送されてしまいます。

さすがにそれでは不便なので、返信等のメールも手元においておくようにしておきましょう。タイトル通り From: もチェックすれば良いわけです。

#test8-1-3 (一部抜粋)
if anyof
(
    address ["To", "Cc"] "example1@example.jp",
    address "From" "example1@example.jp"
)

複数のメールアドレスを運用しているケース

次によくあるケースとしては、メールスプールは一つでも複数のメールアドレスを運用している場合です。例えば、「趣味グループ1」と「趣味グループ2」でメールアドレスが異なっている場合等ですね。(これが「個人用」と「仕事用」だともう少し事情が複雑になりますので、ここでは複数の趣味グループでメールアドレスを使い分けているとしておきます。)

コードとしては次のようになります。

#test8-1-4 (一部抜粋)
if anyof
(
    address ["To", "Cc"] "example1@example.jp",
    address "From" "example1@example.jp",
    address ["To", "Cc"] "example2@example.jp",
    address "From" "example2@example.jp"
)

まとめ

今回は最も基本的な考え方「自分宛てかそうでないか」で処理するコードを記述しました。 次回からは、もう少し踏み込んだ設定を記述していきます。おたのしみに。 [asin:B07ZWCDYZG:detail] evernote.com trello.com

前回までの記事はこちらです。 tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp tsh.hatenablog.jp