LAMP環境について質問させていただきます。


現在iphoneのメール投稿システムを開発しています。

受付用のアドレスを動的に生成し受信した内容を解析→DBに登録、という形にしています。

アドレスはPHPのuniqidを用いて hoge-xxx@ という形で生成します。

メールアドレスは発行してから15分以内という条件にしたいたいのですが、この場合どのような処理を行えばよいでしょうか?

キャッシュを使っていないため、DBに一時的に該当のuniq_idを保管し、cronで削除する?というのが妥当かと思ったのですが、cronは指定時間に起動するので例えば17時に16時45分以前のデータを削除、となると16時58分に発行したユーザも含まれてしまうため悩んでおります。

こちら良い方法などおわかりな方がいらっしゃいましたらご知見いただけますと幸いです。

どうぞよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/12/03 18:37:20
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kodairabase No.1

回答回数661ベストアンサー獲得回数80

ポイント100pt

「DBに一時的に該当のuniq_idを保管」するときに、有効時間(time+15分)を登録すればいいと思います。

id:kuso47

コメントありがとうございます。
たしかに、、最初に登録するさいに現在の時刻+15分でセットし、
メールが投稿された時間と比較して受付可能か確認すればよいだけでした。

ご意見有難うございました。

2011/12/03 18:37:12
  • id:a-kuma3
    uniq_id を保持しておくテーブルに、発行日時のフィールドを作っておいて、
    cron で起動されているレコード削除プログラムで、発行日時を範囲指定して delete する、
    というのでは駄目なのですか?
  • id:rouge_2008
    DBにuniq_idを保管する時にアドレス作成時間のカラムを含めておいて、該当データを条件指定して抽出して削除すればいいように思います。
    もっと良い案があるかもしれませんが・・・
    ただ、cronの実行回数がかなり多くなりそうなので、もし可能なのでしたら、メールアドレスが使用された時にDBに問い合わせて、有効・無効を判定する(※メール投稿システムの方で、受け取ったメールの差出人メールアドレスの有効性を判定する)といいように思いますが・・・

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません