Laravel使用邮件发送生日提醒电子邮件
我正在开发一个应用程序,它可以向用户发送生日提醒电子邮件。Laravel5.2的一切都很好,但现在我想使用邮件,我不知道在哪里循环用户。这是我的邮件课Laravel使用邮件发送生日提醒电子邮件,laravel,laravel-5,laravel-4,laravel-5.2,laravel-5.3,Laravel,Laravel 5,Laravel 4,Laravel 5.2,Laravel 5.3,我正在开发一个应用程序,它可以向用户发送生日提醒电子邮件。Laravel5.2的一切都很好,但现在我想使用邮件,我不知道在哪里循环用户。这是我的邮件课 namespace App\Mail; use App\User; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Illuminate\Contracts\Queue\ShouldQueu
namespace App\Mail;
use App\User;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
class BirthdayReminder extends Mailable
{
use Queueable, SerializesModels;
public $user;
public function __construct()
{
$this->User = $user;
}
public function build()
{
$users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();
foreach($users as $user) {
return $this->from('info@bandali.co.tz')
->view('emails.birthday')
->with(['user' => $user]);
}
}
}
这是我送生日礼物的命令
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\User;
use App\Mail\BirthdayReminder;
use Mail;
use App;
class SendBirthdayReminderEmail extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'email:birthday';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Email users a birthday Reminder message';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
/* $users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();
foreach($users as $user) {
// send an email to "batman@batcave.io"
Mail::to('robertrutenge@gmail.com')->queue(new BirthdayReminder($user));
}
*/
$email="xxxxxxxx@gmail.com";
Mail::to($email)->send(new BirthdayReminder());
$this->info('Birthday messages sent successfully!');
}
}
这是我的观点
<p>Hello Admin,</p>
<p>Today is {{$user['first_name']}} Birthday . Please take time and wish a happy birthday!</p>
我想在数据库中检查是否有任何用户的生日,然后发送电子邮件给一个或多个用户。如果没有,则什么也不做 在命令文件中
public function handle()
{
$i = 0;
$users = User::whereMonth('dob', '=', date('m'))->whereDay('dob', '=', date('d'))->get();
foreach($users as $user)
{
$email="xxxxxxxx@gmail.com";
Mail::to($email)->send(new BirthdayReminder($user));
$i++;
}
$this->info($i.' Birthday messages sent successfully!');
}
在你的邮件课上
public $user;
public function __construct($user)
{
$this->user = $user;
}
public function build()
{
$user = $this->user;
return $this->from('info@bandali.co.tz')
->view('emails.birthday',compact('user'));
}
在刀片文件(birthday.blade.php)中
你好,管理员
今天是{{$user->first_name}生日。请慢慢来,祝你生日快乐
希望这会有所帮助:)非常感谢您的帮助。一切似乎都正常,直到我去我的gmail,我没有收到电子邮件。Cron作业返回此正在运行的计划命令:'/opt/php70/bin/php''artisan'电子邮件:生日>'/dev/null'2>&1&。因此,不知何故,该命令是在不发送任何电子邮件的情况下执行的。你可以做
Log::info($user)代码>句柄方法中的内部循环,并检查laravel.log文件。我想没有用户,否则它应该发送。只需从项目的根目录运行php artisan email:birthday
,检查日志中打印的内容,并在命令提示符中检查信息消息?。请告诉meI已选中,并且有一个userRemoveQueueable
从您的mailable类中删除,并手动运行php artisan命令。我认为代码没有问题。我想你的邮件要排队了。请休息。
public $user;
public function __construct($user)
{
$this->user = $user;
}
public function build()
{
$user = $this->user;
return $this->from('info@bandali.co.tz')
->view('emails.birthday',compact('user'));
}
<p>Hello Admin,</p>
<p>Today is {{ $user->first_name }} Birthday. Please take time and wish a happy birthday!</p>