首页 > 解决方案 > Laravel 7“给定邮箱中的地址不符合 RFC 2822, 3.6.2。”

问题描述

我买了udemy的课程!

我开始做电子邮件激活,即当用户通过电子邮件地址注册激活他们的帐户时。

但是,当我尝试创建帐户时,出现错误!

“给定邮箱中的地址不符合 RFC 2822, 3.6.2。”

AccountController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Http\Request;
use Illuminate\Support\Str;
use App\User;
use Hash;
use Mail;
use URL;

class AccountController extends Controller
{
    public function getcreate(){
        return view('account.create');
    }

    public function postcreate(Request $request){
        $validator = Validator::make(request()->all(), 
        array(
            'email'       =>    'required|max:50|email|unique:users',
            'username'    =>    'required|max:20|min:3|unique:users',
            'password'    =>    'required|min:6',
            'repeat_pass' =>    'required|same:password'   
        ));

        if($validator->fails()){
            return Redirect::route('account-create')
                    ->withErrors($validator)
                    ->withInput();
        }
        else{
            $username  = $request->input('email');
            $email     = $request->input('username');
            $password  = $request->input('password');

            $code      = Str::random(60);

            $user      = User::create(array(
                'email'    => $email,
                'username' => $username,
                'password' => \Hash::make($password),
                'code'     => $code,
                'active'   => 0
            ));

            if($user){

                Mail::send('emails.auth.activate',array('link' => URL::route('account-activate', $code),'username' => $username), function($message) use($user) {
                    $message->to($user->email, $user->username)->subject('Activate your account');
                });


                return Redirect::route('home')
                       ->with('global','Email activation');
            }
        }
    }

    public function getActivate($code){
        //return $code;
    }


}

邮件.php

transport => 'smtp',
host => 'smtp.gmail.com',
port => 465,
encryption => 'ssl',

标签: phplaravel

解决方案


你有

$username = $request->input('email');
$email = $request->input('username');

我怀疑他们需要交换

$email = $request->input('email');
$username = $request->input('username');

推荐阅读