はじめに
メーリングリストを運用していると、その過去ログを自動生成したり、投稿があったらTwitterも連動させたくなるが、やってみるとわりと苦労する(した)。我々がやった方法がベストだとは思わないが、参考のために方法をまとめておく。
構成と仕組み
構成
- メーリングリスト管理:GNU Mailman
- 過去ログ管理: WordPress
- WordPressの記事への自動投稿:Postie (WordPressプラグイン)
- Twitterへの投稿: SNAP (WordPressプラグイン)
このうち、MailmanとWordPressはオンプレで運用している。
これらが、以下のような形で連動している。
メーリングリスト
メーリングリスト管理はなんでも良いが、我々は歴史的な事情でGNU Mailmanを使っている。最近だとGoogle Groupとか使うのが良いんでしょうか。それだと過去ログ管理も自動でできるみたいだし。
過去ログ
過去ログ表示にはWordPressを使った。要するにメール投稿できるブログがあればなんでも良いのだが、できれば独自DNSで運用したい、というニーズがあった。昔はGoogle Blogで、DNSを登録して自分のドメインのフリができたっぽいのだが、ある時期からドメイン偽装ができなくなった。いろいろ調べたのだが、公的な性格を持っているメーリングリストの過去ログを変なフリーサービスに載せるのも気が引けたので、結局オンプレでWordPressを立てて、そこに表示することにした。
具体的には、まずメーリングリストにWordPress記事投稿用のダミーアドレスを登録する。そして、WordPressにPostieというプラグインを入れる。

このプラグインは、指定のメールアドレスを読みに行き、そこにメールが来ていたら記事として投稿してくれる。とりあえず投稿用メールアドレスを用意し、そこにメールを読みに行けるか、読みに行ったら記事化されるか、動作確認しよう。プラグインの設定の右側に動作確認ボタンがある。

投稿用アドレスにメールを投げて、Process Emailでメールを読みに行き、それが記事化されれば成功である。もしうまくいかなかった場合はDebugや設定テストをすると、問題箇所がわかるかもしれない。我々の場合はTLS絡みの設定がうまくいかず、なかなかメールを読み込めなくて苦労した。
通常は、投稿用メールアドレスにメールを送信できる人は限った方が良い。しかし、色んな人がそのメーリングリストに投稿する関係上、誰から送られて来たメールでも記事に載せる必要がある。そこで、設定で「誰でもメールで投稿可能」にチェックを入れる必要がある。

SPAMも記事化されてしまうので、この投稿用メールアドレスは他の人に知られてはならない。また、設定で「WordPressに登録されていないアカウントからのメール投稿があったら、誰の投稿とするか」という項目があるので、適当なWordPressアカウントを作って、そのアカウントが投稿したことにしよう。
TwitterのAPIキー取得
さて、Twitter連携をするためには、まず、witter APIキーを取得しなければならないのだが、これがわりと面倒くさい。どうも最近面倒になったらしい。詳細は適当なサイトを参照してもらうことにして、ざっと
- 連携用のTwitterアカウントを作成し、ログインする
- https://developer.twitter.com/ に行く
- 作成したアカウントでDeveloper Accountを申請(apply)する
- 電話番号を設定していなければ設定する
- 何のために使うか、英語で説明を書く(何文字以上かけとか制約がある)
- 読み書きできる権限とする(Read and Writeでいいのかな?)
- 得られたAPI Key、API Secret、Access Key, Access Secretの4つを保存する。
といった手順になる。
途中、「このAPIキーを何に使うか」みたいな説明を英語で4項目にわけて300字以上かかなければいけなかったのだが、面倒になって「WordPressに投稿された記事をTwitterにも転送したいだけだよ。他に何を書けばいいんだよ」みたいに書いたらBANくらった。
いや、登録したてで何もつぶやいていないTwitterアカウントでDeveloper Accountを申請したのが怪しまれて自動BANされたんだろうけど・・・
具体的に何をしたか忘れたが、とにかく「私は人間です」みたいなことをしたらアクセスできるようになった。
SNAPの設定
次に、「WordPressに記事が投稿されたら自動的にTwitterにも投稿する」ためのプラグイン、NextScripts: Social Networks Auto-Poster (SNAP)を入れる。

設定は、たとえば「WordPressからTwitterへ自動投稿させる方法」を参照。TwitterアカウントとAPIキー四点セットを登録したら、テスト投稿ボタンを押して、実際に当該アカウントに内容がつぶやかれることを確認しよう。
ここで、デフォルトでは「毎日定時に処理」になっているが、即時反映させたいのでSNAPの設定で「Publish immediately」を選んでおく。

ちなみに上記の設定は、WordPressの左のサイドメニューのこの辺にある。普通にプラグインの「設定」のところからはたどり着けないので注意。

ちなみに投稿内容は、デフォルトでは「タイトル」と「記事のURL」である。

上記設定のMessage Formatをいじれば投稿内容を編集できるので、好きなように設定しよう。下にある「Submit Test Post to Twitter」がテスト投稿ボタンである。
まとめ
メーリングリストの過去ログ作成とTwitter連携をやってみた。自分でも「やりたいことにたいして道具立てが大仰かな」という気がしなくもない。例えばメーリングリスト管理と過去ログ作成をオンプレでやっているが、URLとかにこだわりがないのならGoogle Groupとかで良い気がする。ただ、Twitter連携をするためにはTwitterにメールで投稿する手段を作らないといけないが、調べた範囲ではあまり良いサービスが見つからなかった(あるにはあったのだが、サポート面で不安があった)。自分で作ってもたいしたことなさそうだが、それよりは誰かが作った信頼できる仕組みを使った方がよかろう。そんなわけでWordPressのプラグインで対応した。
正直な話、もうメーリングリストというメディアはそろそろobsoleteな気がしなくもない。しかし、まだいろんなところでメーリングリストは運用されており、かつ「いつのまにかそのメーリングリストの管理人になっていた」というような人(例えば俺)もいるだろう。そんな人が過去ログとかTwitter連携とかやることになった時、本稿が少しでも参考になれば幸いである。