[rails] ActionMailerで遅延分割メール送信
SKIPでの開発の話。
現在、SKIPの機能で記事を公開したことを知らせるためや新着のコメントなどをユーザに通知するためにメール送信を行なっています。
しかし、当初運用していた社内では、メールサーバの制限として同時に送信するメールの量が制限されていました。ので、バッチ処理でそれぞれのメールをDBに保存し10通ずつ分けて送信するという処理になっていました。
今回メールでユーザにアンテナの未読記事一覧を送信する機能を開発する上で、もう一つDBのテーブルを用意して、分割送信するのも効率が悪いように感じてきたので、ActionMailerレベルで遅延分割送信ができないかと考えました。
やはり、利用できるライブラリはないかと探してみると、2つのライブラリがgithubに公開されていました。
- workling_mailer( http://github.com/langalex/workling_mailer/tree/master )
- worklingというライブラリを使って非同期にメールを送信するというライブラリ
- deliver_later( http://github.com/mtodd/deliver_later/tree/master )
- DBに保存してcronなどからキックしてメールを送るというライブラリ
残念ながら、分割送信はそのままでは使えないみたい。。。
今回は、シンプルなdeliver_laterを分割送信できるように改良して利用する予定です。
結果は来週。
ブログ再開!!!続くかなぁ。