元フリーエンジニアライフ

Ruby on Rails とか MovableType とかAWSやってるフリーランスウェブエンジニアの記録でした。現在は法人成りしてIT社長。

Movable Type メールマガジンプラグイン MailMug

昨年末よりちょこちょこ作っていた Movable Type で本格的なメールマガジンを運用するためのプラグインMailMug(メールマグ)」のアルファ版を公開しました。

f:id:uzuki05:20150305201004p:plain

takeyuweb/mt-plugin-MailMug · GitHub

7000人近くの会員をもっているお店で会員用メールマガジンのシステムとして実際に運用されているので、それなりにメンテナンスしていくことになると思います。

ただし、半分趣味なので例によってオープンソース&ノンサポートです。サポートが必要な方、信頼性を重視する方はどこかの有償製品をご検討下さい。

MailMugの目的

できること

機能

  • ブログ記事をメルマガ記事として管理
    • 指定日時配信OK
    • バックナンバーをMTで簡単に作成可能(アーカイブテンプレート、ブログ記事テンプレートなどMTの作法で。)
  • HTMLメール / テキストメール 両対応
  • HTMLメールでは本文中に画像使用可能
    • メールの添付ファイルとして埋め込まれるのでデコメなどにも利用できます
  • システム内に複数のメルマガを発行可能
    • 購読者はそれぞれ別個に管理可能
  • 改行区切りファイル(CSV含む)でメルマガ購読者をインポート可能
  • メルマガ購読者をMTのロール&権限モデルで管理
    • 強力かつ柔軟で他との親和性の高い運用が可能
  • メールテンプレートカスタマイズ可能
    • ブログのシステムテンプレートに追加
    • HTMLメールのヘッダ、フッタなどの共通レイアウトはテンプレートで作成可能

設定

  • HTMLメール / テキストメール 両対応。
  • メール文字コード
  • メール返信先(Reply-To)
  • エラー返送先(Return-Path)

性能

  • レンタルサーバ上のMovable Typeから数千通規模のメルマガ配信実績あり
  • メール配信のレジューム
    • エラーやプロセス終了時、自動的に続きから配信 ※損失のない配信のためには InnoDB を使用する必要があります
  • 購読者インポートの際、記事の再構築と同様の仕組みで一定数ずつ読み込むため、タイムアウトを抑制。大量のアドレスも安定して登録可能。

動作しそうな環境

要件

  • MT5.1以上(5.1 / 5.2 / 6.0 / 6.1 / クラウド版) MTOSは未検証だが動くのでは?
  • CRONが設定可能
  • MySQL(その他のDBMSは未検証)

レンタルサーバ

インストール

  1. MT_DIR/plugins にZIPファイル内 MailMug をアップロード
  2. Movable Typeにアクセスし、アップグレード指示に従う
  3. CRON等でrun-periodic-tasksを設定(http://www.movabletype.jp/documentation/schedule_task_framework.html
  4. (できれば)MySQLmt_mail_mug_subscripterテーブルをInnoDBに変更する ※メール配信キューのトランザクションを利用できるようにするため

使い方

  1. テーマ「MailMug」でブログを作成
  2. ブログの設定で MailMug で有効にする
  3. 購読者追加(一括インポート可能)
  4. 記事を作成して「配信許可」公開

TODO(やりたいこと・まだできてないこと)

機能

  • 購読者が自分でメルマガ登録&解除するためのフォームCGI
  • メール配信タスク登録部分の非同期化(大量のとき記事登録に時間がかかるので)
  • メール送信のスロットリング(メールサーバへの負荷対策)
  • メールマガジン送信用SMTP設定
    • Amazon SES 等の配信サービスの利用

管理

  • 返送先メールボックスをチェックして、一定数返送されたユーザを無効化
  • メールプレビュー
  • 指定したユーザに対してテスト送信
  • メール配信タスクの管理(配信状況確認、配信中止など)

有償サポート

設置代行、カスタマイズなどは有償にて承ります。まずはお見積もり。 ただし、有不具合等につきまして対応を保障するものではありませんのでご注意下さい。

ご注意

  • 無保証です。このプラグインを使用したことでいかなる損害が発生しても一切責任を負いません。
  • ノンサポートのオープンソースソフトウェアです。サポートが必要な方は、有償の製品の導入をご検討下さい。