0
votes

I Want to send a email confirmation from laravel but I've the next error error: Too few arguments to function Illuminate\Mail\Mailer::to(), 0 passed in /Applications/MAMP/htdocs/medicalconnect3/vendor/laravel/framework/src/Illuminate/Mail/MailManager.php on line 484 and exactly 1 expected

This is MailManager.php in line 484

 @param  string  $method
         * @param  array  $parameters
         * @return mixed
         */
        public function __call($method, $parameters)
        {
            return $this->mailer()->$method(...$parameters);
    }

This is my function verifyUser

public function verifyUser(Request $request)
    {

        $verification_code = \Illuminate\Support\Facades\Request::get('code');

        //first o get
        $user = User::where(['verification_code' => $verification_code])->first();

        if ($user != null) {
            $user->is_verified = 1;

            $user->save();
            return redirect()->route('login')->with(session()->flash('alert-success', 'Tu cuenta ha sido verificada exitosamente, por favor ingresa'));
        }

        return redirect()->route('login')->with(session()->flash('alert-danger', 'Upps código de verificación invalido '));
    }

This is my register function

public function register(Request $request)
    {

        $user = new User();
        $user->prefijo = $request->prefijo;
        $user->cedula = $request->cedula;
        $user->name = $request->name;
        $user->paterno = $request->paterno;
        $user->materno = $request->materno;
        $user->titulo = $request->titulo;
        $user->entidad = $request->entidad;
        $user->email = $request->email;
        $user->telefono = $request->telefono;
        $user->ciudad = $request->ciudad;
        $user->password = Hash::make($request->password);
        $user->verification_code = sha1(time());
        $user->save();

        if ($user != null) {

            //send email with verification link
            MailController::sendSignupEmail($user->name, $user->email, $user->verification_code);

            //show a message
            return redirect()->back()->with(session()->flash('alert-success', 'Tu cuenta ha sido creada. Por favor revisa tu email para realizar la verificación de la cuenta'));
        }

        //show error message
        return redirect()->back()->with(session()->flash('alert-danger', 'Upps algo salio mal, por favor vuelve a intentarlo '));
    }
1
Hi! Would you mind sharing the code from MailController::sendSignupEmail?Kristian Hareland
public static function sendSignupEmail($name, $email, $verification_code){ $data = [ 'name' => $name, 'verification_code' => $verification_code, ]; Mail::to()->send(new SignupEmail($data)); } }luislalohdz

1 Answers

0
votes

Seems you are forgetting to pass $email as the first parameter of Mail::to()-> should be Mail::to((new User(['email' => $email])))->.

The first parameter is expecting a \Illuminate\Notifications\Notifiable (https://laravel.com/api/8.x/Illuminate/Notifications/Notifiable.html)

Please take a look at https://laravel.com/api/8.x/Illuminate/Mail.html