尝试发送邮件,但是“给定邮箱[xxxx]中的地址不符合RFC 2822,3.6.2”。

时间:2019-09-11 21:40:02

标签: php laravel email

我想将邮件发送到实际的电子邮件地址。

注册用户时,我正在使用用户的电子邮件地址(从注册表单中获取)向该电子邮件发送激活链接。

当我使用mailtrap.io尝试此操作时,它显示正确的“发件人”电子邮件地址和“发件人”电子邮件地址

public function build()
{
    return $this->from('smuiauol@gmail.com')->subject('SMUIA account verification')->view('emails.verify')->with('user', $this->user);
}

protected function create(array $data)
{

   $user = User::create([
        'name' => $data['name'],
        'surname' => $data['surname'],
        'program' => $data['program'],
        'year' => isset($data['year']) ? $data['year'] : null,
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
    ]);

    $verifyUser = VerifyUser::create([
        'user_id' => $user->id,
        'token' => str_random(40)
    ]);

    Mail::to($user->email)->send(new VerifyMail($user));

    return $user;
}

现在它给出了错误:

给定[xxxx]的邮箱中的地址不符合RFC 2822,3.6.2。

1 个答案:

答案 0 :(得分:0)

这是哪个班?您可能想尝试使用dd()功能来检查脚本中使用的值。

我实际上在写今天与此类似的东西。因此,我假设该类为Mail \ UserVerify.php。可以尝试的几件事

  1. 您是否已验证模板? (这对我造成了问题)。 -如果不是尝试创建它,然后再试一次
  2. 您是否尝试过将$this->user->email替换为$data['email']以查看其是否有效? -如果确实验证了$this->user->email==$data['email']
  3. 您是否已验证正在数据库中创建用户? -如果不是,则$ this-> user没有价值。
public function build()
{
    return $this->from('smuiauol@gmail.com')
                ->subject('SMUIA account verification')
                ->view('emails.verify')
                ->with('user', $this->user);
}

protected function create(array $data)
{

   $user = User::create([
        'name'    => $data['name'],
        'surname' => $data['surname'],
        'program' => $data['program'],
        'year'    => isset($data['year']) ? $data['year'] : null,
        'email'   => $data['email'],
        'password'=> bcrypt($data['password']),
    ]);

    $verifyUser = VerifyUser::create([
        'user_id' => $user->id,
        'token'   => str_random(40)
    ]);

    Mail::to($user->email)
        ->send(new VerifyMail($user));

    return $user;
}

祝你好运。