Laravel 4:如何发送确认电子邮件?

Fra*_*ssi 12 email confirmation-email laravel laravel-4

到目前为止我已经制作了一个带登录/注册的应用程序,它运行正常.注册后,会发送欢迎电子邮件.

但我想要做的是在该邮件中发送一个链接,只有在点击它之后,才能登录.

就像论坛等常见的注册邮箱一样.

有人可以帮帮我吗?

这是postRegister方法:

public function postRegister()
{
    $input = Input::all();

    $rules = array(
        'username' => 'required',
        'password' => 'required');

    $validation = Validator::make($input, $rules);

    if ($validation->passes()) {

        $password = $input['password'];
        $password = Hash::make($password);

        $user = new User;
        $user->username = $input['username'];
        $user->email = $input['email'];
        $user->password = $password;

            $mailer = new Mailers\UserMailer($user);

                 // var_dump($mailer);

                    $mailer->welcomeMail()->deliver();

                    $user->save();

        return Redirect::to('afterRegister');
    }

    return Redirect::back()->withInput()->withErrors($validation)->with('message', 'Validation Errors!');
} 
Run Code Online (Sandbox Code Playgroud)

谢谢

cir*_*van 26

这里有一些线索(不会为你编写代码).

  • 在用户表中添加两个字段:confirmation,confirmed.
  • 在Laravel中创建一条路线registration/verify/{confirmation},在其中您尝试使用给定的确认码(如果找到,将用户的confirmed字段设置为1)在您的数据库中查找用户.
  • 在用户注册后,生成唯一的确认代码(您可以使用str_random()辅助功能).
  • 相应地设置新用户的DB条目(confirmation=随机码,confirmed= 0)
  • 在您的电子邮件中为新用户添加验证链接(根据您的验证路线构建)和生成的确认代码.

现在可以像这样进行验证尝试:

$user = array(
        'username' => Input::get('username'),
        'password' => Input::get('password'),
        'confirmed' => 1
);

if (Auth::attempt($user)) {
    // success!
    return Redirect::route('restricted/area');
}
Run Code Online (Sandbox Code Playgroud)

  • 我不喜欢使用'确认'栏.激活用户后,我只需删除确认码.这样,所有没有confirm_token的用户都被激活. (2认同)