0

誰かがサインアップしたというメールが 5000 件以上入っている受信トレイがあります。メールの本文には、データベースに保存したいメール アドレスと名前が含まれています。

Q) どうすればこれをデータベースに入れることができますか? 理想的にはmysql。

理想的には、私が最もよく知っている PHP でこれを行いたいと考えています。

私はiRedMailを以下で使用しています: OpenLDAP

更新: 質問を投稿して以来、 Plan Cake Email Parserを使用して実際のメール パーサーを既に作成しました。これを見つけてから文字通り 5 分かかりました。

更新 2: 簡単にするために、データベースに必要なすべての電子メールを別の IMAP フォルダーに移動しました。

しかし、検索しても何も返されません: find /var/vmail -name 'Subscribers' -type d –</p>

更新 3: もう 1 つの方法は、Thunderbird Windows 7 を使用してローカルのメール クライアントにメールを既にダウンロードしているというものです。プロファイルを確認すると、以下に関連する 3 つのファイルが表示されます。

  1. サブスクライバー.msf
  2. 加入者-1
  3. サブスクライバー-1.msf
4

1 に答える 1

1

本当に難しいのは、メールを解析することではなく、サーバーからメールを取得することです。これを行うには、次の 3 つの方法が考えられます。

  1. php の imap ライブラリhttp://php.net/manual/en/book.imap.phpを使用します。個人的にはあまり使っていませんが、すべてのメールを取得しているだけなので、役立つかもしれません。欠点は、他のメールもすべて取得してしまうことです。
  2. サードパーティのサービスを使用して imap を処理し、よりシンプルな REST インターフェイスを介してメールを公開します。理想的には、重要な用語 (おそらく「ユーザーがサインアップしました」) を検索して、それを解析することをお勧めします。
  3. offlineimapを使用して、すべてのメールを Maildir としてダウンロードし、ローカルに保存します。これで、PHP を使用してすべてのメールを検索できるようになり、ここでバージョンをテストするのがより速く簡単になります。

パースに関しては、個人的grepには抽出したい情報が含まれているメールを探し出し、その情報をawkCSVファイルに変換するのがオススメです。PHP を使用してテキスト処理を行うこともできますが、これらのテイクを使用して行う方がはるかに簡単でクリーンです。

データを MySQL に簡単にプッシュできるようになりました。

于 2012-12-11T07:52:37.567 に答える