質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

3回答

2486閲覧

メール問い合わせ管理システムの構成案

pack

総合スコア256

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

1クリップ

投稿2016/09/20 04:02

編集2016/09/20 23:15

##前提・実現したいこと
顧客管理システムとして、以下の事を検討しております。
質問の意図としては、システム構成の方向性として良いかどうか、ご意見を伺いたいです。

  • 顧客からの問い合わせを管理できる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も含まれていれば、いろいろ一気に解決できるのでは?という期待もあります。

質問自体の趣旨が、「ライブラリ教えて」「サービス教えて」になってしまいそうで恐縮ですが、もしパッと思いつくものがあれば、教えていただければと思いますし、開発の方向性として他、意見がございましたら、伺えればと思います。

以上、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2016/09/20 04:05

例示用ドメインはご自身で所有されていない限りexample.comを利用してください。
pack

2016/09/20 04:08

ご指摘ありがとうございます。修正いたしました。
guest

回答3

0

CakePHPのEmailコンポーネントでメール送信するのはさして難しいことではないと思います。
ただ、メールサーバーやDNSの設定はちゃんとされていないと届いた届かないの問題はあると思いますが、それは何を使っても同じでしょう。

受信は少々面倒ですが、メール受信をフック処理ができないようであれば、POP3経由などでcronなどで定期的に取得処理をすればよいように思います。ライブラリはいろいろありますのでそれらを使えばそう難しくはないと思います。
1分に1回程度ならはじかれることもないでしょうし、そこまでリアルタイムに受信処理をしなければならないということもないと思います。

Facebook、LINEなどのようなサービスとの連携については、メール送受信のレベルでは正直、全く関係ないと思います。何をしたいのか具体的にわからないと返答にしようがありません。

投稿2016/09/20 17:02

CodeLab

総合スコア1939

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pack

2016/09/20 22:40

ご回答ありがとうございます。 「メール扱うの大変そうだな。迷惑メールいっぱい来るんだろうな」というどうしても苦手意識に近いものがあり、当初より「まず受信はGmailで」という考えがありました。 POP3で取得するライブラリなども、調査してみようと思います。 外部サービスとの連携について、ご指摘ありがとうございます。 質問文も修正いたしました。後半部分、改めてご確認いただければと思います。 そういったものを、プログラム的にも同列に扱えるものがあれば便利だなと思い、質問いたしました。
guest

0

否定的に聞こえるかもしれませんが、作る理由は何なんでしょうか。

メールワイズMail Dealer といった既存のプロダクトで用は足りてしまうような気がします。

開発するにしても、GMailとの連携や外部連携の拡張性などを踏まえると Zapier のようなAPIハブサービスを利用していくことも選択肢になるかもしれません。

投稿2016/09/20 04:20

kaz.Suenaga

総合スコア2037

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pack

2016/09/20 04:39

ありがとうございます。 ご指摘の通り、多種多様なサービスが世の中に存在しますが、自分で作った方が安いし導入しやすいと判断したからです。正確には「提案しやすい」ですが。 足りない機能のみ別システムで作り、また連携を考えて、操作を覚えてもらって、などを考慮すると、ですね。 実現したい事は、本当にシンプルな事なので。 APIハブサービスなどは、存じ上げませんでした。 まだ詳しく見ておりませんが、こういった感じで一元的に管理できるのが理想ですね。 「Zapier」、参考にさせていただきます。
kaz.Suenaga

2016/09/20 04:57

判断の要素はいろいろありますが、特にメール周りは様々なパターンへの対応が必要となります。 文字コードやマルチパートといった正規の仕様への対応の他に、仕様に則っていないメールの処理など、相当慎重なデータの取り扱いが必要になります。 そのあたりを踏まえると、けして自分で作っても「安く」はないと思います。 また、オペレーションを考えるとメールの送受信(受信・返信)は意外とややこしいユースケースが大量に発生するので、思っているほど「シンプル」では済まないんじゃないかなあと想像します。 自前で作った方が管理・改善しやすい面は確かにありますので全否定する気はないですが、結構な覚悟が必要な道のりだと思いますよ。 要件の洗い出しのためだけでも、世の中のプロダクトを試用してみることをお勧めします。
pack

2016/09/20 05:14

そうですね。 CakePHPのEmailコンポーネントも、まだ使った実績がないです。 送信の方も、送信案2とした、Gmailを通せば、何とかなるかな程度の考えです。 その辺があって、なかなか踏み切れないところですね。 おっしゃる通り、メールについては、本当に悩みどころが多いと思いますので、既存のプロダクトも案として検証していきたいと思います。
pack

2016/09/20 07:46

すみません。判断基準という所で、付け加えておきますと。 業務フローとして、出口が増えた時に、対応できるかどうかが大きいですね。 質問をシンプルにしようと思って、余計な事書かずに「顧客管理」「メール問い合わせ管理」という言葉を便宜的に使いましたが、そこだけがメインではないので。 質問の書き方が、不明確で申し訳なかったです。 例えばですけど、問い合わせを基に何かを発送する、アポを取ってそれを記録する、とかですね。 「やり取り」の中には、そういったものも含まれてくる場合もあるという事です。 ほんとごめんなさい。今現在そういった案件があるとかでは全然なく、可能性として書いてるだけですが。 がわの部分と、内部構造が分離されてて、メール処理は全部そっちに任せて、APIで手軽にデータが取り出せて、みたいなのがあれば、利用料が多少高くても喜んで使うんですけどね。 私も、そんな所に時間掛けたくないので。
kaz.Suenaga

2016/09/20 08:06

まあたぶんそういうことだよなあと思ったので作るんですかという質問でした。 そうなるとCRMとかSFAとの連携が肝になってきますのでAPIハブを中心として様々な外部ツール(自作ツールのWebフックを含む)として、 - 様々な入力をうけとり、 - 任意のWebフックにデータをおくり、 - レスポンスをとりまとめてコントロールする といったあたりが作るべく箇所となるんではないでしょうか。
pack

2016/09/20 08:46

CRMなんかは、APIを用意してくれてる所が多いので、どこを自前で作るのか、どこを外部サービスに頼るのか、そういった選定が特に重要ですね。 いかんせん、そういった引き出しが自分の中にまだ無いので、なかなかパッパッと選べるものではないですが。 そういったものは、どちらかというと経営判断になってくるのでしょうね。 当然、この場ではCRMサービスを紹介して欲しいという質問ではないので、そちらも引き続き検証してみます。 ご指導、ありがとうございます。
guest

0

ベストアンサー

CakePHPのEmailコンポーネントは十分に使えると思います。
が、もしリッチコンテンツ(HTMLメール、添付ファイルなど)を扱いたいのであれば、相手方のメールクライアント・メールサービスの違いによるメールの文字化けや表示崩れなどを防ぐための作り込みは結構手間がかかると思います。
また、将来的にFacebookやLINEなど様々なインターフェースに対応したいとのことですので、
送信も受信もRESTfulなGmailのAPIを使用するのがベターではないでしょうか。
上記のようなメールのフォーマットの違いをGmailが吸収してくれますし、メッセージの送受信部分の実装を汎用的にしやすくなると思います。

投稿2016/09/26 01:51

uomi41

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

pack

2016/09/26 12:59

ありがとうございます。 なんだか、メール面倒くさいという意識から、二の足を踏んでしまい、背中を押してもいたいが為の質問みたいになってしまいましたが。 GmailのAPIがあると分かった時点で、まずは「それで、何を、どこまでできるか」を調査するしか、やる事は残ってないですよね。 それを調査したうえで、やりたい事が出来るか出来ないか。まずはそこからですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問