0

ニュースレターに登録して管理できるアプリを作成しています。フィールドが空の場合、電子メールの種類、一意の ecc の場合は通常の検証があります。しかし、電子メールが実際に存在するかどうかを確認するにはどうすればよいですか? 誰かが偽のメールを入力すると、そのメールがデータベースに入力され、データベースが混乱する可能性があります。そして、他の迷惑があります。メールが本当に存在するかどうかを確認することはできますか?

そうしないと、10 日後に未登録ユーザーを自動的に削除できますか?

4

2 に答える 2

2

電子メール形式が有効かどうかを確認するルールを作成できます。

$validator = Validator::make(
    Input::all(),
    array('email' => 'required|email')
);

if ($validator->fails())
{
    return "This is not a valid e-mail";
}

ただし、電子メール アドレスが実際に存在するかどうかを知る方法がないため、これは形式 (name@domain.tld) のみをチェックします。

ええと...これは完全に真実ではありません。方法があります。そのアドレスに電子メールを送信し、エラーメッセージが表示されない場合は、おそらくアドレスが存在します。

必要なことを行う最善の方法は、ユーザーがシステムでアカウントを作成するときに、そのアドレスを検証するためにクリックする必要があるリンクを含む確認メールを送信することです。アカウントが x 日間検証されない場合は、アカウントを削除します。これは、その上で役立つかもしれない質問です: Laravel 4: 確認メールの作成方法? .

最後の質問について:検証されていないアカウントをチェックして削除するアーティザン コマンドを作成します。ドキュメントを見てみましょう。簡単です。Laravel がほとんどすべての作業を行います。また、cron またはタスク マネージャーを使用して、このコマンドを 1 日 1 回実行できます。

php /var/www/your-site-dir/artisan check:accounts

編集:

この質問は、コマンドを作成する方法を示します: Laravel 4 コマンドの作成と使用

メソッド fire() では、次のようにする必要があります。

public function fire()
{
    $dt = Carbon\Carbon::now();

    User::where('activated', false)
            ->where('created_at', '<', $dt->subDays(10))
            ->delete();
}
于 2013-09-24T14:29:13.330 に答える