質問: 前提・実現したいこと ---------- 顧客管理システムとして、以下の事を検討しております。 質問の意図としては、システム構成の方向性として良いかどうか、ご意見を伺いたいです。 * 顧客からの問い合わせを管理できるWEBシステムを作りたい(CakePHP) * 入口 - 問い合わせフォーム、メール(info@example.com) * 出口 - メール返信(info@example.com) * やり取りの履歴をDBに格納し、管理したい * 返信作成もWEBシステム画面上で行いたい * システムはレンタルサーバーに設置(Xserver) * Xserverでは、メール受信をフック処理できるようなものは無い模様 * 自前でメールサーバーとなると、管理、迷惑メール対策など工数がかかりそうなので、レンタルサーバー、及び、Google様の力を借りたい 構成案 --- ##### 受信メールの取得 * ドメインは、メール、WEBともにXserverに振る。 * Xserverでinfo@example.comのアカウントを作成 * Gmailで受信 * GoogleAppsScriptで、受信をトリガにして、CakePHPへのPOSTできるような仕組みを用意しておく。 * CakePHPで問合せの履歴をDBに格納 ##### 返信 * CakePHPで返信作成フォームを作る * 送信案1 CakePHPのEmailコンポーネントで送信 * 送信案2 GoogleAppsScriptで送信できる仕組みを用意しておいて、それをCakePHPから叩く。 以上のような、構成案を考えました。 GoogleAppsScriptは全くの未経験で、採用するとなれば、これから学習する必要があります。 もし、「他にもこんなのがあるよ」というのがあれば、伺いたいです。 また、将来的には、入口、出口、ともに増やしていけるような拡張性についても、ご意見があれば、伺いたいと思います。 例えば問い合わせ窓口として、Facebook、LINEなどのようなSNSサービスを追加していくような場合です。 画面上では、それらが同列に並び、管理側はどこから入ってきたかの違いを意識する事無く対応できるようなものにしたいです。 > > 「○○には各種SNSのAPIを扱うライブラリが揃ってるよ」 > > 「そういったAPIの窓口となってくれる外部サービスがすでにあるよ」 > > > といったものがあればいいなという思いです。 追記 -- 改めて調べて知ったのですが、GmailもAPIが公開されたとの事で、そういったライブラリなどの中にGmailも含まれていれば、いろいろ一気に解決できるのでは?という期待もあります。 質問自体の趣旨が、「ライブラリ教えて」「サービス教えて」になってしまいそうで恐縮ですが、もしパッと思いつくものがあれば、教えていただければと思いますし、開発の方向性として他、意見がございましたら、伺えればと思います。 以上、よろしくお願いいたします。
回答: CakePHPのEmailコンポーネントは十分に使えると思います。 が、もしリッチコンテンツ(HTMLメール、添付ファイルなど)を扱いたいのであれば、相手方のメールクライアント・メールサービスの違いによるメールの文字化けや表示崩れなどを防ぐための作り込みは結構手間がかかると思います。 また、将来的にFacebookやLINEなど様々なインターフェースに対応したいとのことですので、 送信も受信もRESTfulなGmailのAPIを使用するのがベターではないでしょうか。 上記のようなメールのフォーマットの違いをGmailが吸収してくれますし、メッセージの送受信部分の実装を汎用的にしやすくなると思います。