我得到一个错误:给定[]的邮箱中的地址不符合RFC 2822,3.6.2



我手头有一个laravel项目。然而,我没有写这个项目。他们给了我一个bug需要解决。它显示了这个文件/app/Http/Controllers/Crons/EmailCronJobController.php中的问题,但据我所知,它显示在这里,因为这里使用了发送邮件。我以前没有使用过Laravel这样的服务,所以我知道的不多。我把问题的截图和文件的内容放在下面,但如果有什么不同的地方我需要分享给你,让你更好地理解,我可以和你分享。

在此处输入图像描述

EmailCronJobController.php


namespace AppHttpControllersCrons;
use AppHttpControllersController;
use AppMailListenerFirstContentListen;
use AppMailListenerNothingListenedFor3Days;
use AppRawListeningData;
use AppUser;
use AppUserPayment;
use CarbonCarbon;
use IlluminateHttpRequest;
use IlluminateSupportFacadesMail;
class EmailCronJobController extends Controller
{
public function __invoke()
{
$this->listeners();
}
private function listeners(){
$this->listenersFirstContentListen();
$this->listenersNothingListenedFor3Days();
}
private function listenersNothingListenedFor3Days(){
$users = User::where([
['role_id','=', 4],
['created_at', '>=', Carbon::now()->subDay(7)->toDateTimeString()],
['created_at', '<', Carbon::now()->subDay(3)->toDateTimeString()]
])->get();
$users = $users->filter(function ($user){
return $user->getFirstListenedContent()==null;
});
/*
foreach ($users as $user){
$email_array = explode('@',$user->email);
$email = $email_array[0].'@etrexio.com';
$user->update(['email'=>$email]);
}*/
foreach ($users as $user){
if($user->getCustomField('nothing_listened_3_days_email_send_date')==null){
Mail::to($user)->send(new NothingListenedFor3Days($user));
$user->setCustomField('nothing_listened_3_days_email_send_date',date('Y-m-d H:i:s'));
}
}
}
private function testEmail(){
$active_user_payments = UserPayment::select('user_id')->where('exprire_date', '>=', Carbon::now()->toDateTimeString())->get();
$active_users_ids = $active_user_payments->map(function ($payments){
return $payments->user_id;
});
$users = User::whereIn('id',$active_users_ids)->get();
dd($users);
}
private function listenersFirstContentListen(){
$last_24_h_listening = RawListeningData::select('user_id')->where('created_at', '>=', Carbon::now()->subDay()->toDateTimeString())->get();
$last_24_h_listening_users = $last_24_h_listening->map(function ($listening){
return $listening->user_id;
})->unique();
$before_24_h_listening = RawListeningData::select('user_id')->whereIn('user_id',$last_24_h_listening_users)->where('created_at', '<', Carbon::now()->subDay()->toDateTimeString())->get();
$before_24_h_listening_users = $before_24_h_listening->map(function ($listening){
return $listening->user_id;
})->unique();
$result = collect($last_24_h_listening_users)->diff(collect($before_24_h_listening_users));
$users = User::whereIn('id',$result)->get();
foreach ($users as $user){
if($user->getCustomField('first_content_listen_email_send_date')==null){
$content = $user->getFirstListenedContent();
if($content!=null){
Mail::to($user)->send(new FirstContentListen($user,$content));
$user->setCustomField('first_content_listen_email_send_date',date('Y-m-d H:i:s'));
}
}
}
}
}

NothingListedFor3Days.php


namespace AppMailListener;
use AppCourse;
use AppUser;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
class NothingListenedFor3Days extends Mailable
{
use Queueable, SerializesModels;
public $listener;
public $random_contents;
public $fromEmail = 'listener@omnicourse.io';
public $fromName = 'Omnicourse';
/**
* Create a new message instance.
*
* @return void
*/
public function __construct(User $listener)
{
$this->listener = $listener;
$this->random_contents = Course::all()->random(10);
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->from($this->fromEmail,$this->fromName)
->view('email.listener.nothing_listened_for_3_days')
->text('email.listener.nothing_listened_for_3_days_plain')
->subject("Let's move ahead together");
}
}

我想可能是这行:

Mail::to($user)>send(newFirstContentListen($user,$content));

$user在您的情况下,它是一个对象,而不是电子邮件。试着在几个点上调试它或dd((,看看它在哪里被卡住了。

也可能想看看这个

给定[]的邮箱中的地址不符合RFC 2822,3.6.2。当电子邮件处于可变中时

最新更新